Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[TUTORIAL] Easy captcha dengan PHP
08-05-2012, 11:27 PM (This post was last modified: 08-05-2012 11:33 PM by tooth.)
Post: #1
Wink Easy captcha dengan PHP
Pada pembahasan kali ini saya menggunakan Apache (WebServer) PHP 5.3.8, dan PHP dengan gaya OOP

Bagaimana ide membuat scriptnya? pertama nantinya kita generate dua buah bilangan bulat mulai dari 0 s/d 99 (Boleh diganti 0 s/d sekian). Dua bilangan ini nantinya akan muncul di kode captcha nya. Kemudian, pilih secara acak juga operator nya, apakah penjumlahan, pengurangan atau perkalian. Setelah itu, hitung hasil operasi dari kedua bilangan tersebut dan kemudian simpan hasilnya dalam sebuah session. Dengan hasil perhitungan yang disimpan dalam session itulah, kita bandingkan dengan hasil jawaban yang diisikan oleh pengunjung situs. Jika hasilnya sama, maka kode captcha benar. Namun jika tidak sama, maka kode captcha salah.
Berikut ini isi class nya !

class-captcha.php
Spoiler :
PHP Code:
<?php
//Start session
session_start();

/* Class mathcapttcha */
/* Class yang berisi beberapa fungsi yang dipakai untuk verifikasi, generate, dan inisialisasi captcha */
class mathcaptcha
{
   
//Variabel
    
private $bil1;
    private 
$bil2;
    private 
$operator;

   
//Function initial()
   //Inisialisasi captcha
    
function initial()
    {
        
//variabel listoperator yang merupakan suatu array
        
$listoperator = array('+''-''x');
        
        
//Me-random bilangan yang akan digunakan dari 0-99
        
$this->bil1 rand(099);
        
$this->bil2 rand(099);
        
        
//Me-random operator yang akan digunakan
        
$this->operator $listoperator[rand(02)];
    }

    
//Function generatekode()
    //Generate kode captcha
    
function generatekode()
    {
        
//Memanggil fungsi initial()
        
$this->initial();

        
//Bila operator = + atau - atau x, maka apa yang dilakukan
        
if ($this->operator == '+'$hasil $this->bil1 $this->bil2;
        else if (
$this->operator == '-'$hasil $this->bil1 $this->bil2;
        else if (
$this->operator == 'x'$hasil $this->bil1 $this->bil2;
        
        
$_SESSION['kode'] = $hasil;
    }

    
//Function showcaptcha()
    //Menampilkan Captcha
    
function showcaptcha()
    {
        echo 
"Berapa hasil dari ".$this->bil1." ".$this->operator." ".$this->bil2." ? ";
    }    

    
//Function resultcaptcha()
    //Mengembalikan nilai kode session
    
function resultcaptcha()
    {
        return 
$_SESSION['kode'];
    }

}

?>


submit.php
Spoiler :
PHP Code:
<?php

// panggil script class
include 'class-captcha.php';

// membuat obyek class
$captcha1 = new mathcaptcha();

// jika kode hasil perhitungan dari session sama dengan kode
// yang dimasukkan user, maka kode captcha cocok
if ($captcha1->resultcaptcha() == $_POST['kode'])
{
    echo 
"<p><b>Kode verifikasi benar</b></p>";
    echo 
"<p>Berikut ini data yang Anda masukkan ke dalam form</p>";
    echo 
"<p>Nama : ".$_POST['nama']."</p>";
    echo 
"<p>Email : ".$_POST['email']."</p>";
}
else{
    
// jika kode captcha salah
    
echo "<p><b>Kode verifikasi salah</b></p>";
}

echo 
"<p><a href='index.php'>Ulangi Entri</a></p>";

?>


index.php
Spoiler :
PHP Code:
<?php
    
// memanggil script class
    
include 'class-captcha.php';
    
    
// membuat obyek class
    
$captcha1 = new mathcaptcha();
    
    
// panggil method untuk mengenerate kode
    
$captcha1->generatekode();
?>
<html>
    <head>
       <title>Contoh Captcha Matematika</title>
    </head>
    <body>
        <h1>Form Entri Data</h1>
        <form method="post" action="submit.php">
            <table>
                <tr><td>Nama Anda</td><td>:</td><td><input type="text" name="nama"></td></tr>
                <tr><td>Email Anda</td><td>:</td><td><input type="text" name="email"></td></tr>
            </table>    

            <p><b>Kode Verifikasi</b></p>
            <p>
<?php
                   
// menampilkan kode captcha berisi soal matematika
                   
$captcha1->showcaptcha();
              
?>
<br>
<input type="text" name="kode">
</p>
<p><input type="submit" name="submit" value="Submit"></p>

</form>
    </body>
</html> 

Hasilnya :
Spoiler :
   

Selamat Mencoba Big Grin Big Grin Big Grin


credit : rosihanari.net
Find all posts by this user
Quote this message in a reply
08-05-2012, 11:30 PM
Post: #2
RE: Easy captcha dengan PHP
screenshot hasilnya disertain jga dung kk Big Grin

NOPAIN NOGAIN
Find all posts by this user
Quote this message in a reply
09-06-2012, 03:53 PM
Post: #3
RE: Easy captcha dengan PHP
captcha kan tujuannya utk memastikan user yg nginput manusia, bukan bot

klo tampilan perhitungannya text-based sprt inu kyknya msh bakalan jebol oleh bot deh
Find all posts by this user
Quote this message in a reply
09-06-2012, 04:35 PM (This post was last modified: 09-06-2012 08:28 PM by hafiizh.)
Post: #4
RE: Easy captcha dengan PHP
(09-06-2012 03:53 PM)Tegarmaji Wrote:  captcha kan tujuannya utk memastikan user yg nginput manusia, bukan bot

klo tampilan perhitungannya text-based sprt inu kyknya msh bakalan jebol oleh bot deh
kyk nya seh emg bner kata mas tegar
alangkah baiknya kalau perhitungannya itu memakai image atau suara

ayo mas bikin tutornya Big Grin , hihihihi
Find all posts by this user
Quote this message in a reply
09-06-2012, 08:24 PM
Post: #5
RE: Easy captcha dengan PHP
Nampaknya iya mas, bot sekarang canggih2 ya
Btw, Mohon dishare mas capcay yang paling powerfull menurut mas tegaar.. [Image: biggrin.gif]
Find all posts by this user
Quote this message in a reply
09-18-2012, 08:48 PM
Post: #6
RE: Easy captcha dengan PHP
Pakai reCAPTCHA aj kakak..
check sini --> http://www.google.com/recaptcha

Lebih gampang.. Smile
Find all posts by this user
Quote this message in a reply
05-26-2013, 04:38 PM
Post: #7
RE: Easy captcha dengan PHP
mau nanya, kalo captcha kenapa yang dibaca cuma yang tulisannya terdistorsi ya? trus yang tulisan standar buat apa ya? Big Grin
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)