Membuat Captcha Dengan PHP

Bagaimana Membuat Captcha Dengan PHP ? ... atau Cara membuat Captcha  Dengan PHP... ? ... menjawab dari pertanyaan Tersebut Ebsof, akan menjelaskan dalam tutorial di bawah ini..

Captcha.. Captcha adalah salah satu bentuk validasi Form, yang digunakan untuk menangkal spam atau kejahatan yang orang lain lakukan terhadap aplikasi. Captcha dapat berupa gambar, tulisan, Penjumlahan Matematika. dan sebagainya..

Contoh : pada Aplikasi Buku Tamu.. Jika ditambah lagi dengan Cpatcha.. pastil lebih full.. tinggal di kombinasikan dengan script di bawah ini 

Berikut ini captcha yang akan kita buat :


Cukup mantap bukan,,,,? Dengan ini robot akan kewalahan untuk malakukan spam... weeeeeee

Langsung aja.. Kita Masuk dalam Tutorial Membuat Captcha Dengan PHP:
 
1.Buka editor kesayangan anda.. buatlah file "captcha.php" berikut ini codenya :

<?php
    class RandomChar{
        function LoopChar($min, $max){
            for($i=$min;$i<=$max;$i++){
                $ret .= chr($i);
            }
            return($ret);
        }
        
        function GenerateRandomChar($digit, $capital, $small, $number){
            if($number) $data = $this->LoopChar(48, 57);
            if($capital) $data .= $this->LoopChar(65, 90);
            if($small) $data .= $this->LoopChar(97, 122);
            
            $ret = $data[mt_rand(0, (strlen($data)-1))];
            for($i=1;$i<$digit;$i++){
                $ret .= $data[mt_rand(0, (strlen($data)-1))];
            }
            return($ret);
        }
    }
    
    class captcha extends RandomChar{
        function captcha(&$session, $width, $height, $chars){
            $fontfile     = "comic.ttf";
            $fontsize     = 11;
            
            $code     = $this->GenerateRandomChar($chars, true, false, false);
            //$imgBg    = imagecreatefromjpeg("captcha/captchabg.jpg");
            $imgDst = imagecreate($width, $height);
            //imagecopy($imgDst, $imgBg, 
            //            0, 0, 0, 0, 
            //            imageSX($imgBg), 
            //            imageSY($imgBg));
            imagecolorallocate($imgDst, 255, 255, 255);
            
            //dots
            $area = ($width*$height)/5;
            $dots_color = imagecolorallocate($imgDst, 255, 0, 255);
            for($i=0;$i<$area;$i++){
                imagefilledellipse($imgDst, mt_rand(0, $width), mt_rand(0, $height),
                                    1, 1, $dots_color);
            }
            
            //text
            $textbox    = imagettfbbox($fontsize, 0, $fontfile, $code);
            $textcolor     = imagecolorallocate($imgDst, 0, 0, 255);
            imagettftext($imgDst, $fontsize, 0, 
                            ($width-$textbox[4])/2, 
                            ($height-$textbox[5])/2, 
                            $textcolor, 
                            $fontfile, $code);

            imagejpeg($imgDst);
            //imageDestroy($imgBg);
            imageDestroy($imgDst);
            
            $session = $code;
        }
    }
    
    session_start();
    header("Content-type: image/jpeg");
    $width      = $_GET['width']  ? $_GET['width']  : 100;
    $height  = $_GET['height'] ? $_GET['height'] : 20;
    $chars     = $_GET['chars']  ? $_GET['chars']  : 6;
    
    //$session = &$_SESSION['securityCode'];
    $captcha = new captcha($_SESSION['securityCode'], $width, $height, $chars);
?>

2. Setelah itu, buat file "index.php" untuk membuat Form ... berikut ini script nya :

<form method="post" action="post.php">
<img src="captcha.php?random=<?echo(mt_rand());?>"/><br/><br/>
<input type="text" name="captcha" size="10"/> <input type="submit" value="Submit"/>
</form>

3. Yang Terakhir buat file "post.php" digunkan sebagai proses form ... berikut script nya :

<?php
    session_start();
    //Pengecekkan terhadap captcha yang di masukkan user Jika bernilai benar
    if(isset($_SESSION['securityCode']) && $_SESSION['securityCode'] == $_POST['captcha']){
        //Jalankan query yang ingin anda jalankan
        echo('Security Code Benar');
        unset($_SESSION['securityCode']);
    //Jika captcha yang di masukkan tidak benar /salah
    }else{
    //tampilkan pesan
        echo('Security Code Salah');
    }
?><br/>
<a href="index.php">[balik]</a>

5. Download File Font nya supaya bisa keluar captcha nya .
6. Selesai.. Jangan lupa Simpan di satu Folder ke 4 file tersebut (index.php, post.php, font ,captcha.php)

Untuk Source Code nya Silahkan Download Script Captcha Dengan PHP

Demikianlah Artikel "Membuat Captcha Dengan PHP" semoga bermanfaat..
LihatTutupKomentar