Home > Programming, Web > Membuat PHP Captcha Sendiri

Membuat PHP Captcha Sendiri

Pernah denger istilah Captcha? captcha itu harfiahnya “Completely Automated Public Turing test to tell Computers and Humans Apart” ( dari Wikipedia ). Dibuat untuk membedakan antara mesin ( bot ) dan manusia. Captcha dibuat untuk melakukan validasi input pada website2 yang mempersilahkan pengunjung memberikan inputan baik berupa komentar, shoutout, kotak pendaftaran, atau apapun dimana pengunjung menginputkan sesuatu.

Kenapa harus divalidasi? soalnya banyak banget program2 SPAM COmment yang bisa aja menyerang situs kita. Kebayang kan klo kita bikin website, terus isi dari Comment/guestbook di website kita itu isinya Link2 ad ato penawaran tentang produk ato ga link ke situs2 porno. Jadi gak sedap dipandang. Biasanya yg ngisi Comment adalah program yang secara otomatis melakukan submit ke buku tamu / halaman comment website/blog kita.. Nah, klo pernah kejadian kayak gitu ato ga ngeliat yang kayak gitu, sebaiknya lengkapi websitenya dengan Captcha.

Captcha = Gambar Samar2
Simpelnya, Captcha merupakan sebuah gambar (image) yang berisi Angka / Teks atau kombinasi Angka & teks yang disamar2kan bentuk & rupanya sehingga memerlukan ketelitian dari pengunjung / orang yang ingin melakukan inputan data disebuah website.

Menambahkan Captcha pada website kita

Cara yang pertama adalah dengan download library Captcha dari thecaptcha.com Kita tinggal menambahkan librarynya dan disisipkan dengan website kita.

Cara yang kedua adalah dengan membuat PHP Captcha kita sendiri. Kode ini saya dapat dari somewhere setelah googling2. Eh ga taunya baru tau kalo di rumahweb.com tutorial kayak gini udah pernah ditulis. Jadi klo mau lebih detail boleh liat ke situsnya.

Cara Kerjanya:

Nah, cara kerjanya adalah bermain2 dengan session,  pada saat form pendaftaran di Load, maka dibuatkan String Random dari MD5 yang diambil 5 digit pertamanya. Kemudian string itu disimpen di SESSION, Dari String itu dibuatkan Image dengan menggunakan GDLIbrary bawaan dari PHP dan ditampilkan di halaman Form tersebut. Pada saat User Submit String tersebut, dilakukan pengecekan dengan Session yang sudah tersimpan sebelumnya.

Captcha Preview

File: php_captcha.php

<?php

session_start(); $RandomStr = md5(microtime());// md5 to generate the random string $ResultStr = substr($RandomStr,0,5);//trim 5 digit $NewImage =imagecreatefromjpeg("img.jpg");//image create by existing image and as back ground

$LineColor = imagecolorallocate($NewImage,233,239,239);//line color $TextColor = imagecolorallocate($NewImage, 255, 255, 255);//text color-white

imageline($NewImage,1,1,40,40,$LineColor);//create line 1 on image imageline($NewImage,1,100,60,0,$LineColor);//create line 2 on image imageline($NewImage,5, 1, 200, 50, $LineColor);

imagestring($NewImage, 5, 15, 5, $ResultStr, $TextColor);// Draw a random string horizontally

$_SESSION['key'] = $ResultStr;// carry the data through session header("Content-type: image/jpeg");// out out the image imagejpeg($NewImage);//Output image to browser 

?> 

File: form.php

<?php

session_start(); 

?>

<html> <head> <title>PHP-CAPTCHA </title> </head> <body onload="return focuson();"> <script   language="javascript"> function focuson() { document.form1.number.focus()}

function check() { if(document.form1.number.value==0) { alert("Please enter your Category Name"); document.form1.number.focus(); return false; } }

</script> 

<?php

 if(isset($_REQUEST['Submit'])){ $key=substr($_SESSION['key'],0,5); $number = $_REQUEST['number']; if($number!=$key){ echo '<center><font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"> Validation string not valid! Please try again!</font></center>';} else{ echo '<center><font face="Verdana, Arial, Helvetica, sans-serif"  color="#66CC00"> Your string is valid!</font></center>';} } 

?>

<form name="form1" method="post" action="form.php"  onsubmit="return check();"> <img src="php_captcha.php" /></td> <input name="number" type="text" id="number" /></td> <input name="Submit" type="submit"   value="Submit" /></td> </form> </body> </html>

Kode lengkapnya Bisa di download disini

Categories: Programming, Web Tags:
  1. January 24, 2008 at 9:30 pm

    mo download tp link downloadnya gak bisa diakses , he he discreenshootnya ada tabnya recaptcha

  2. January 25, 2008 at 2:23 am

    iya.. blm sempet di upload.. ntar dech di benerin lagi.. blm nemuin tempat share file yang oke nich. ada saran?

    tapi btw, itu kodenya dah valid ko, tinggal di copy paste aja… ^_^

  3. February 8, 2008 at 9:51 am

    Yang saya bingungkan, kode diatas kan menghasilkan file img.jpg. Misalnya ada 2 orang atau lebih yang mengakses halaman tersebut, apakah image captchanya ga error ? atau menampilkan gambar yang sama ? atau gimana

  4. February 8, 2008 at 10:37 pm

    gambar yang dihasilkan isi (angka & text) nya didapat dari hasil random String yang di MD5, lalu dipotong 5 digit pertamanya… kemudian disimpan di Session.

    $RandomStr = md5(microtime());// md5 to generate the random string
    $ResultStr = substr($RandomStr,0,5);//trim 5 digit

    ..jadi setiap kali halaman direload, pasti selalu menampilkan hasil gambar yang berbeda. coba buka dua browser dan jalankan file yang sama…

    contoh image captcha yang pernah saya buat ada disini http://himakom.prodi-mi.com/index.php/view/tipografi-font-untuk-web
    cobain aja buka 2 kali di tab yg berbeda

  5. February 21, 2008 at 2:13 am

    dulu q sempat tanya ke orang2 untuk buat ini, cuman orang yang q tanya kaga ngerti….soalnya q sendiri ga tahu namanya…

    rupanya CAPTCHA

  6. February 21, 2008 at 2:27 am

    Yup😀

  7. ismed
    February 29, 2008 at 3:03 am

    fan…
    kenapa ga di implemen ke web nya alia ?
    dah lumayan banyak tuh spam nya.. 😀

  8. paul
    March 5, 2008 at 11:06 am

    nanya dunkz?

    1. fungsi captcha apa sih?
    2. kenapa harus pake captcha?

    thanks before!!

  9. March 6, 2008 at 12:31 pm

    @ismed:
    sudah di implement kang ismed, silahkan cek lagi di http://alia.pknlpkia.ac.id
    mohon maaf agak telat respon nya😀

    @paul:
    1.fungsi utamanya untuk mencegah spam. karena sekarang sudah banyak BOT (mesin) yang melakukan insert ke buku tamu / comment di website kita secara otomatis. nah, dengan captcha dipastikan, yang mau insert ke bukutamu/comment tersebut adalah manusia, bukan mesin.

    2.sudah terjawab di nomor 1.
    😉

  10. paul
    March 11, 2008 at 7:51 pm

    thanks banget ya… maklumlah lagi mencari artikel2nya sih… mas irfan makasih bgt…
    btw… masih bisa nanyakan?

    1. apakah ada cara lain selain captcha? pengen ngebandingin dengan yang lain… siapa tau ada..
    2. bisa ga kita buat captcha, tapi kita randomnya dari folder yang isinya file2 .gif yang sudah dibuat dari perpaduan antara huruf dan angka?

    best regard.

    pengen ngebandingin dengan yang lain

  11. March 15, 2008 at 2:17 pm

    @paul:
    y sama.. senengnya bisa ngebantu😀

    umm…
    1. cara lain? setau saya selain dibandingin sama captcha, bisa juga dengan cara dibandingin sama angka hasil operasi matematika sebuah bilangan. Misal: (Berapa 5×6). Tapi si bilangannya di random jg, jadi BOT susah deh bacanya… contohnya.. um.. pernah liat dulu, tapi lupa lagi, bentar googling dulu. :p

    2. cara kaya gitu kurang efektif deh klo menurut saya. Mungkin random huruf & angka nya tetep di PHP nya aja. Cuma yg bisa di ganti2 file imagenya (warna background & ilustrasinya mungkin). Kemudian cara si php nge-scratch(ngegores2in) tuh gambar lebih dipersulit lagi sehingga sulit dibaca.

    semoga bermanfaat.. ^__^v

  12. June 14, 2008 at 2:42 am

    Wah thanks ya buat tipnya

  13. paul
    July 10, 2008 at 9:52 am

    Fan… thanks banget atas bantuannya… kalo ga ada loe… tugas gw bisa GAGALLLLLLLL 100%……

    ada lagi yang ingin saya tanyain… :)… kebetulan udah captcha itu udah gw kembanging dengan ngac kode di tiap huruf. jadi yang ada kode dihurufnya yang terpilih…..

    pertanyaan gw :
    1. gimana cara c captcha itu bisa menghambat spam? (sebenarnya gw udah tau tapi hanya ingin mencocokkan jawabannya)
    2. gimana algoritmanya captcha itu? (hehehehe…gw ga tau apa itu algoritma)
    3.boleh minta alamat YM loe ga? biar interaksi langsung… online konsul…
    thanks before n after….

  14. July 11, 2008 at 6:54 am

    YM: irfanroom

  15. tepan
    July 12, 2008 at 7:41 am

    wah bro… aku maw tanya neh bikin form yang inputannya untuk tgl lahir, jadi waktu kita masukin bulan nanti tglnya bisa ngatur sendiri, misalnya kita masukin bulan maret berarti tglnya sampai 31, tapi klo kita masukin bulan april tglnya jadi 30 terus untuk bulan februari masalahnya sama tahun nah itu gimana caranya yah… jadi form itu lasung ngebaca untuk dirinya sendiri.. kalo bisa segera dijawab ya ntu buat jobtraining aku soalnya hehehe… thx bro

  16. July 12, 2008 at 3:52 pm

    wah… harus seperti itu ya spesifikasinya? biasanya mah klo buat tanggalan, pake combobox untuk tanggal nya (diisi 1-31, min tgl 1 max tgl 31), klo buat bulan sudah pasti diisi jan-des. Nah klo tahunnya tinggal masukin aja pake textbox. Ato bisa juga di define, looping dari tahun terkecil (misal 1940 – tahun skr 2008).

    Tapi kalo speknya harus milih berdasarkan bulan.. umm.. okay ku coba bikinin deh. Btw, ntar liatnya di blog ku yg baru aja yah… Secepatnya ku bikin.Okay😉

    http://satriadarma.webwae.com

  17. July 12, 2008 at 4:47 pm

    nah tuh bang, dah dibikinin😀

  18. Lea
    July 25, 2008 at 6:59 am

    kk, captcha nya koq ga bs yaahh?? gambarnya ga keluar.. plz bantuin donk

  19. July 29, 2008 at 7:55 am

    ga keluarnya kenapa yah ??

  20. November 19, 2008 at 1:51 am

    gambarnya ga bisa keluar ….

  21. November 24, 2008 at 7:35 am

    mas, kok ga bisa keluar gambarnya ya? saya coba akses lgs php_captcha.php, munculnya spt ini:

    Warning: imagecreatefromjpeg(img.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /php_captcha.php on line 6

    Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /php_captcha.php on line 8

    Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /php_captcha.php on line 9

    Warning: imageline(): supplied argument is not a valid Image resource in /php_captcha.php on line 11

    Warning: imageline(): supplied argument is not a valid Image resource in /php_captcha.php on line 12

    Warning: imageline(): supplied argument is not a valid Image resource in /php_captcha.php on line 13

    Warning: imagestring(): supplied argument is not a valid Image resource in /php_captcha.php on line 15

    Warning: Cannot modify header information – headers already sent by (output started at /home/gobushba/public_html/php_captcha.php:6) in /php_captcha.php on line 18

    Warning: imagejpeg(): supplied argument is not a valid Image resource in /php_captcha.php on line 19

    kira2 salahnya apa ya mas?

  22. bontlover
    November 29, 2008 at 3:42 am

    iya gambarnya ga keluar. adanya kotak ada tanda silang merahnya

  23. December 1, 2008 at 1:02 am

    ada saran dari eri sk8ber untuk yg ga jalan pake imagecreate katanya ganti pake imagettftext($im, 22, 0, 10, 35, $black, $font, $ResultStr);

    tapi sy sendiri juga belum nyoba… ntar di cek dulu knp bisa eyyoy. kayaknya ada masalah sm createjpg nya.

  24. December 12, 2008 at 10:33 am

    aaaaaaaaaaaaaaa………
    pucing aku………

  25. December 17, 2008 at 8:23 am

    thank u…

  26. Simri
    January 2, 2009 at 6:57 am

    Kepengen nyoba soale websiteku pernah kena spam sampe pusing 7 keliling..
    Kalo ada kesulitan boleh share nggak? Thnx ya…

  27. January 4, 2009 at 3:47 am

    @omsiro:
    pusingnya kenapa om?

    @pinandita:
    sim2… bermanfaat ?

    @Simri:
    Ok. Siap. mungkin spam2 sekarang udah lebih canggih kali ya. dengan teknik Captcha seperti ini sy belum tau apa masih bisa ditembus ato ngga. tapi mudah2an bisa ya.😀

  28. rio sugarian
    January 9, 2009 at 10:28 am

    Mau tanya nich knp background captcha pas di upload gk view , tapi di localhost tampil … kurang apanya …ya,

  29. Rivai
    January 30, 2009 at 2:35 am

    Waduh! katanya udah valid kok masih eroor!

  30. January 30, 2009 at 2:20 pm

    errornya di bagian mananya rivai? mungkin qt bisa bahas.

    • guntur
      January 21, 2011 at 9:32 am

      jony :
      gambarnya ga bisa keluar ….

      bro mau tanya neh
      kalo code php buat ganti gambar captcha gmna?
      mohon bantuannya
      thx

  31. XekaiForce
    January 31, 2009 at 2:34 am

    Halo semua, salam kenal.

    Seneng banget nemu blog keq gini ^^. Kalo captchanya sendiri udah lama tau, cuma ga pernah pengen make soalnya blom butuh. Barusan sekitar 2 ato 3 hari lalu dosenku minta ada model scurity kayak captcha. Aku cari-cari dapetnya class melulu. Enak seh tinggal pake, tapi pengen ngerti konsepnya, dan sekarang dapat. Lah, koq ga liat konsepnya dari kelas yang ada?? Ah.. males.. udah terlalu banyak baris kode. Well.. Thanks banget bro..

    Nah sekarang mau bagi2 pengetahuan jg aku ^^. Pertama dari kode diatas, ada satu baris kode yang menurutku ga perlu fungsi berlebih. Pada file form.php baris yang berisi
    $key=substr($_SESSION[‘key’],0,5);
    Nah itu fungsi substr-nya dalam kasus ini ga perlu. Coz diawal udah diambil 5 huruf. Jadi cukup kayak gini bisa =)
    $key=$_SESSION[‘key’];

    Terus masalah fungsi yang dari library gdi-nya, yaitu imagecreatefromjpeg(string) itu adalah fungsi untuk membuat identifier image dari file yang sudah ada, jadi harus nyediain file img.jpg terlebih dulu untuk contoh :
    $NewImage = imagecreatefromjpeg(“img.jpg”);
    Tapi pas tak coba nyediain file img.jpg gambarnya ga berubah, jadi gw ganti fungsinya jadi
    $NewImage = imagecreate(100,20); // paramater = panjang, lebar.
    Fungsi diatas membuat identifier baru tanpa source image, jadi murni di memori server.

    Kemudian untuk kasus captcha yang minta hasil perhitungan ini aku kemarin coba buat yang sederharna, aku modifikasi dari contoh sebelumnya =)

    file = captcha.php

    Untuk file form.php sama, cuma ganti baris

    menjadi

    atau terserah sesuai file source image captchanya… Oh ya, hati2 untuk pembagian tak hingga semacam 1/3 yang hasilnya 0.3333333…. mending di kasih pembulatan. Atau di substr jg bisa.
    Terserah itu =)

    Tapi yang paling penting, dari penjelasan bang Irfan adalah konsepnya, thanks banget bro.

    @toetde :
    Itu libray gdi di PHP blom aktif bang.

  32. February 7, 2009 at 3:10 pm

    @XekaiForce:
    wah, thx banged +annya. sim2. sangat membantu sekali penjelasan dan bagi2 pengetahuan teknisnya jadi lebih worth it lagi kodingnya. Tentang pembagian yg klo mau jadi pembualatan bisa juga pake fungsi ceil() nya php.

    ok bro thx juga dah mampir n share disini. mdh2an bisa tetep share ya.

    regards.

  33. March 9, 2009 at 1:54 am

    makasi pak,, sedeng perlu ne…

  34. March 13, 2009 at 9:07 am

    Bagi yang gagal masang captcha, yag gambarnya gak mau muncul….
    coba deh upload juga file img.jpg. anda bisa desain dulu pake adobe photoshop, baru di upload. pasti nantinya bisa…
    semoga bisa membantu bagi yang gagal

  35. April 13, 2009 at 5:10 pm

    NI ntar ditaruh dimana ya…?

  36. April 13, 2009 at 5:12 pm

    ditaruhnya di contact-form / form yg membutuhkan validasi captcha.

  37. July 1, 2009 at 1:16 pm

    kok hasilnya tetap ga ada ya? n yang keluar tetap kotak dengan tanda silang merah ?
    ni errornya :
    Fatal error: Call to undefined function: imagecreatetruecolor() in c:\apache\htdocs\captcha\php_captcha.php on line 13
    kalau saya rubah begini :
    $NewImage =imagecreatefromjpeg(“img.jpg”)
    jadi :
    ga ada hasilnya …

  38. July 1, 2009 at 1:20 pm

    tolong jalan keluarnya mas?

    • August 18, 2009 at 9:31 am

      @kang sofyan:

      uda cek blm di php.ini?

      cek dulu deh apa di baris extension=php_gd2.dll
      ada tanda “;” di depan?
      -> kalo ada mohon dihilangin deh…. ;p
      -> kalo ga bs juga cek filenya ada ga?
      [lokasi filenya ditaruh tergantung sama package (xampp, phptriad, dll) yg anda pake]

  39. ami
    July 29, 2009 at 7:40 am

    tes hallo!

  40. August 18, 2009 at 9:11 am

    monggo mas, mangap numpang lewat…

    td ane cari2 di om google n ketemu posting ini…
    nice post and idea, gan…

    btw, cuma mau nambahin aja mungkin kalau dibuat create dari image jpg yg udah ada akan ribet (image ga muncul)… [atau mungkin bs ada terjadi exclusive locks untuk penggunanaan secara bersamaan. Cuma paranoia, ga bs ane buktikan ;p ]

    jadi, ane pake cara bang XekaiForce, tp ga pake imagecreate karena rada transparan gitu antara background ama tulisan… [ga sama kayak contoh]

    jadi, ane otak-atik dikit… [ijin yah gan…]

    cara kang irfan:
    $NewImage =imagecreatefromjpeg(“img.jpg”);

    cara bang XekaiForce
    $NewImage =imagecreate(100,20);

    cara ane
    $NewImage =imagecreatetruecolor(75, 30); //(Panjang, Tinggi)

    dan dipaling bawah file “php_captcha.php” setelah:

    imagejpeg($NewImage);//Output image to browser

    ane tambahin:

    imagedestroy($NewImage); //Clear output buffer. Added by Surya

    dua cara ini disarankan oleh phpmanual [ satu mang jelas2 di sebut gitu. kedua, tiap ada contoh ttg image selalu ada imagedestroy() ]

    [quote: phpmanual]
    resource imagecreate ( int $width, int $height )

    imagecreate() returns an image identifier representing a blank image of specified size.

    We recommend the use of imagecreatetruecolor().
    [/quote: phpmanual]

  41. September 18, 2009 at 8:28 am

    Thanks bro atas artikelnya

  42. September 26, 2009 at 2:44 am

    sama2 bang…

  43. September 27, 2009 at 3:01 pm

    bro…uda g coba tapi koq script nya ga jalan sih ? tolong donk bantuannya…gw lagi pengen belajar capcai ne eh salah captcha…heheheh
    thank’s yach.

  44. September 28, 2009 at 3:14 am

    ga bisanya gmn om ? ada keluar error atau gimandang.. siapa tw saya / temen2 yg lain bisa bantu

  45. Syaiful Amri
    October 20, 2009 at 3:09 am

    @Surya Japutera

    Thanks bos, pake caranya bos Surya baru bisa jalan dengan bener nih script
    pake $NewImage =imagecreatetruecolor(75, 30);

    • Irfan Satriadarma
      October 20, 2009 at 3:05 pm

      ok. sama2 bro.. your welcome. semoga berguna ya…

  46. November 16, 2009 at 4:15 pm

    ikutan..om. tadinya juga binun kok gak kerja scriptnya. ternyata nilai $NewImage diganti pake imagecreate() baru kerja. Trims. Nah kalo buat gedein ukuran text nya gimana om?

  47. Surya Japutera
    November 17, 2009 at 3:29 am

    @wesiyadi
    weeew… pertanyaan yang bikin penasaran… hehehehe…

    fyi,
    bool imagestring (resource $image, int $font, int $x, int $y, string $string, int $color)
    dari built-in function imagestring(), variabel $font lah yang bertugas menentukan ukurannya… tapi ternyata maksnya hanya sampai 5.

    Because for you size does matter… Untuk itu, kita harus menggunakan built-in function yg lain, setelah search di php manual ini lah kandidatnya: imagettftext() penjelasan nanti dibawah, sebenarnya pake imagestring jg bs tp kalo liat contoh dari php manual kayaknya ribet…. jadi imagettftext() ini jadi pilihan alternatif.

    imagettftext ( resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text )

    oh yah… $angle variable untuk bs dimiringin loh… namanya juga derajat.😉

    //imagestring($NewImage, 5, 15, 5, $ResultStr, $TextColor);// Draw a random string horizontally /* Dicomment dulu */
    
    $font = 'comicbd.ttf'; /* ambil dari C:\WINDOWS\Fonts pilih font yang diinginkan dan copy-paste ke folder yang sama dengan php_captcha.php */
    $white  = imagecolorallocate($NewImage, 255, 255, 255);
    imagettftext($NewImage, 40, 5, 50, 50, $white, $font, $ResultStr);
    

    NB:
    1. Jangan lupa untuk memperbesar font, luas bidangnya ditambah (pada saat pembuatan $NewImage). Ex: $NewImage =imagecreatetruecolor(300, 120);//Create New Image.

    2. Jangan lupa sebaiknya garisnya ditambah panjangnya. Ex: imageline($NewImage,1,1,130,130,$LineColor);//create line 1 on image
    imageline($NewImage,1,100,300,0,$LineColor);//create line 2 on image
    imageline($NewImage,5, 1, 200, 300, $LineColor);
    bahkan ditambahkan sampai 5 or 10 garis….

    3. jika menggunakan imagettftext(), ada baiknya ditambahkan angle, sayang ada fasilitas ngak dipake….😉

    4. bisa juga ditambahkan bayangan loh… tinggal pake warna yang lain (sebagai ganti $white) dan dideclare lebih dulu dan jangan lupa atur posisinya…😉

    5. Untuk keterangan lebih lanjut silahkan cek PHP Manual anda… sekarang ane mo kerja dulu…

    Good luck…🙂

  48. November 17, 2009 at 1:35 pm

    weleeh..kok makin ribet..om..jangan kesel yak..ane lagi nyobain php🙂 soalnye ane sedang bete ama si delphi🙂

  49. Irfan Satriadarma
    November 18, 2009 at 5:59 am

    @wesiyadi: waaa php jadi pelarian nih ceritanya.. gara2 sebel sm delphi… ^_^

    @surya: mantap tambahan tutorialnya om. saya cobain juga yaa…. tambah kumplit aja ini.. gimana klo qt bikin library untuk captcha php aja yu..

    • Surya Japutera
      February 16, 2010 at 3:55 am

      @Wesiyadi: hehehe coba aja pelan2 dan terus pelajarin… ^^
      @Mas Irfan: mangap, baru sempet buka lagi… huehuehe… siip, boleh juga tuh bikin lib buat captcha… tapi ‘kan ide dasarnya dari mas sendiri… ^^
      nanti aku share modif-an ku deh… makasih yah mas buat sharingan-nya…😉

      session_start();
      $RandomStr = md5(microtime()); // md5 to generate the random string
      $ResultStr = substr($RandomStr,0,5); //trim 5 digit
      $NewImage =imagecreatetruecolor(90, 35); //Create New Image. 
      
      $LineColor = imagecolorallocate($NewImage, 128, 128, 128); //line color
      $TextColor = imagecolorallocate($NewImage, 255, 255, 255); //text color-white
      
      imageline($NewImage,1,1,100,50,$LineColor); //create line 1 on image
      imageline($NewImage,20,20,75,50,$LineColor); //create line 2 on image
      imageline($NewImage,1, 15, 100, 25, $LineColor); //create line 3 on image
      imageline($NewImage,1, 30, 100, 40, $LineColor); //create line 4 on image
      imageline($NewImage,1, 50, 100, 1, $LineColor); //create line 5 on image
      imageline($NewImage,50, 1, 90, 30, $LineColor); //create line 6 on image
      
      $font = 'segoeprb.ttf'; 
      /*Surya Note: you can change this with another font you desire. 
      Please consider to put the files in the same folder. */
      $white  = imagecolorallocate($NewImage, 255, 255, 255);
      imagettftext($NewImage, 18, 5, 5, 30, $white, $font, $ResultStr);
      
      $_SESSION['veri_key'] = $ResultStr; // carry the data through session
      header("Content-type: image/jpeg"); // out out the image
      imagejpeg($NewImage); //Output image to browser
      imagedestroy($NewImage); //Clear output buffer. Added by Surya
      
  50. niko
    December 28, 2009 at 12:18 pm

    makin ribet tp makin mantaff tampilannya..
    thx banget smuanya, jadi bisa lanjutin buat proyek deh.. hehee

  51. nyaa
    January 20, 2010 at 4:03 pm

    Klo qta udh bwt form.php sm captcha.php nya trs cr masukin k dlm web qta gmna? kebetulan sy pke WP..
    maaf neh maklum msh pemula..
    thx

    • Irfan Satriadarma
      January 22, 2010 at 4:09 am

      klo di wp udh ada askimet yg mencegah spam masuk, tinggal tambahin pluginnya aja. qt g perlu bikin captcha sendiri. captcha yg d bkin disini untuk bikin sendiri & diterapin di web yg dibikin (proyekan)…

  52. yono
    January 20, 2010 at 5:37 pm

    duhh saya ga ngerti nich..
    pusing baca scriptnya..🙂

    • Irfan Satriadarma
      January 22, 2010 at 4:10 am

      pelan – pelan saja… udah paling simpel banget itu kk..

  53. May 15, 2010 at 1:15 pm

    mksh OM Irfan,
    script Anda sgt membantu dalam pmbuatan tugas web saya.🙂

    • August 23, 2010 at 8:52 am

      iya sama2 ya… emang tugasnya disuruh ngapain ?

  54. asdasd
    May 16, 2010 at 11:35 am

    231412312

  55. Dian
    July 11, 2010 at 2:03 pm

    Thanks tutorialnya..

  56. August 23, 2010 at 8:52 am

    iya sama2 mba

  57. ical
    September 8, 2010 at 5:56 am

    matapfz nih blog… trus terang saya da sering bkin tugas web pakai PHP walaupun cuma standrt2 aj… liat scriptnya saya da tau maksudnya tpi trus terang lom ngarti… hihihi…
    ini lo mo nanya ke agan2 senior…
    kira2 nerapin captcha makai flash mungkin g?? jd yang ditampilin obyek bergerak gitu, soalle kan kabanyakan da makai gambar atau perhitungan matematika…
    atau mang da ada yang makai flash, kalau da ada brarti saya ktinggalan info.

  58. September 8, 2010 at 3:19 pm

    hehe syukurlah skarang udah ngerti brarti ya gan.. cara kerjanya captcha?

    klo pake flash ya mungkin banget,, coba gugling dgn keyword flash captcha pasti banyak tuh..

    btw,, captcha dgn image bergerak nya mo kayak gmn nih agan ical? sp tau jd ide yg menarik?

    • ical
      September 9, 2010 at 11:02 am

      sory ni baru dbalas skarang alna ge beres2 nyambut lebaran nih… jd g OL seharian.
      Gini loh gan, kalau objek bgaraknya nya kya flash2 yg banyak nampil di banner2 website, mirip2 itu, atau kalau memungkinkan pakai flash video kaya d youtube gitu.
      Jadi capcha-nya dari video yg d link-in ke url video youtube gitu.
      kira-kira maksudnya bgitu. kira2 logika PHP nya gmana tu.
      Agan irfan tau g cara ngePHP-in nya??
      By The Way, mohon ma’af lahir bathin dulu nih…

  59. January 13, 2011 at 11:43 am

    makasi ya..
    jadi ada bahan perbandingan saya..😀
    sukses terus,..

  60. guntur
    January 22, 2011 at 2:39 am

    agan2 senior php bang irfan & friend mau tanya neh
    kalo code php buat ganti gambar captcha gmna?
    misalnya user nda tau gambar captcha yang muncul
    terus dia mau ganti gambarnya
    “untuk mengganti gambar captcha klik disini”
    linknya dtaruh dstu gan
    mohon bantuannya
    thx

  61. April 19, 2011 at 6:01 pm

    wah ane habis bikin kotak comment di web ane,,dan ane dapet dari emailmeform.com tpi ada capthca nya ane jadi pusing eh ternta ada disini jawabannya makasih yahh salam kenal

  62. Irfan Satriadarma
    August 9, 2011 at 4:07 pm

    sama2.. salam kenal jg… senang bisa membantu di postingan lama ini🙂

  63. January 13, 2012 at 5:04 pm

    Om kalo buat login.php gimana ya

  64. November 13, 2013 at 7:53 am

    kode yang mna untuk di tampilkan ? tutorialnya yg bner ni -_-

  65. iskandar
    May 11, 2014 at 7:32 am

    kalau berbasis video captcha na gimana mas ada tutor buat na gak???

  66. September 13, 2015 at 5:48 am

    langsung tancap gas, langsung bikin nih, kayaknya patut di cobain soalnya

  67. April 8, 2016 at 11:13 pm

    There is no special talent involved in bodybuilding, just a strong desire to perfect the physique.nThe actual calories they feature are really r Click http://d2.ae/hool09070

  1. July 12, 2008 at 4:33 pm
  2. March 20, 2011 at 8:15 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: