11
Nov
Membuat Captcha Dengan PHP
Posted by Gora Santika
Sumber Gambar : www.captcha.ru
Contoh sederhana ada pada sebuah forum. Ketika user hendak submit post, maka ia diminta untuk mengisi captcha. Jika tidak menggunakan captcha, mungkin spambots akan memasukkan ribuan post sekaligus dalam sebuah forum.
Pada pembahasan kali ini, kita akan belajar membuat captcha sederhana menggunakan PHP. Adapun algoritma program yang akan kita buat adalah sebagai berikut :
- Membuat random text yang akan dijadikan sebagai kode verifikasi.
- Menampilkan random text kepada user.
- Mencocokkan input dari user dengan random text.
- img.php (membuat random text)
- captcha.html (menampilkan random text pada user)
- check.php (mencocokan input dengan kode)
Saatnya beraksi...
img.php
Pertama, kita buat random text. Kemudian menyimpannya dalam sebuah variable. Setelah itu menyajikannya dalam wujud gambar agar tidak dapat di-copas (copy-paste).<?php // membuat random text dari 0 - 9999 $code=rand(0,9999); // menyimpan random text pada session session_start(); $_SESSION["captcha"]=$code; // mengubah text menjadi gambar $im = imagecreate(150, 40); $bg = imagecolorallocate($im, 0, 0, 0); $fg = imagecolorallocate($im, 0, 255, 0); $font = 5; imagestring($im, $font, 50, 10, $code, $fg); header('Content-type: image/png'); imagepng($im); imagedestroy($im); ?>Untuk penjelasan mengenai mengubah text menjadi gambar, dapat membaca lebih lanjut pada PHP.net
captcha.html
Merupakan halaman HTML yang berisi sebuah form yang akan menampilkan gambar kode yang telah dibuat oleh img.php serta menyediakan tempat bagi user untuk memasukkan data.<form action="check.php" method="post"> <!-- tempat menulis komentar --> <textarea name="komentar" cols="50" rows="8"> Tulis apa saja di sini </textarea><br> <!-- menampilkan kode random text --> <img src="img.php" style="float:left;" /> <!-- tempat menulis captcha --> Tulis teks di samping :<br> <input name="kode" type="text"><br> <!-- tombol kirim --> <input type="submit" value="Kirim"> </form>
check.php
Sebuah halaman PHP yang berisi perintah untuk mencocokkan input captcha user dengan input captcha yang telah dibuat oleh img.php<?php // set variable session_start(); // komentar user $komentar=$_POST["komentar"]; // input captcha user $kode=$_POST["kode"]; // kode captcha dari img.php $captcha=$_SESSION["captcha"]; // jika captcha dari img.php kosong if(empty($captcha)) { // redirect ke captcha.html untuk ambil kode header("location:captcha.html"); } // jika captcha dari img.php tidak kosong else{ // jika captcha sama dengan input user if($kode==$captcha) { echo("Captcha yang anda masukkan benar.<br>"); echo("Komentar anda :<br>"); echo($komentar); } // jika captcha tidak sama dengan input user else { echo("Captcha yang anda masukkan salah.<br>"); echo("Silakan ulangi."); } } ?>Hasil dari percobaan di atas adalah: » seperti ini «
[Semoga Bermanfaat]
thanks ya bro..
thanks
bro...untuk membuat captcha paling cocok menggunakan algoritma apa?
tks b4..