Friday, February 26

Membuat Captcha Dengan PHP dan Mysql

Apa fungsinya captcha? Fungsi captcha adalah untuk memastikan yang mengeksekusi benar-benar manusia. Misalnya digunakan di guestbook, comment dan lain-lain. Banyak sekali fasilitas yang menyediakan fasilitas captcha dan kita tinggal menggunakannya. Tetapi kali ini kita buat captcha sendiri. Cara kerja nya user nantinya memilih nama gambar yang sesuai dengan gambar yang ada disampingnya, gambar itu akan tergenerate secara random. Dan cara membuatnya adalah sebagai berikut:
1. Siapkan data base dan buatlah table dengan kode berikut:

CREATE TABLE IF NOT EXISTS `captcha` (
`id_captcha` int(11) NOT NULL AUTO_INCREMENT,
`nama_captcha` varchar(50) NOT NULL,
`gambar_captcha` varchar(50) NOT NULL,
PRIMARY KEY (`id_captcha`)
)

2. Isi data base anda.

INSERT INTO `captcha` (`id_captcha`, `nama_captcha`, `gambar_captcha`) VALUES
(1, 'domba', '02.jpg'),
(2, 'kepala kuda', '03.jpg'),
(3, 'anak ayam', '04.jpg'),
(4, 'ayam jago', '06.jpg'),
(5, 'Tikus', '07.jpg');

3. Siapkan file-file gambar dengan nama file disesuaikan dengan database
4. Koneksi data base bisa dilihiat di sini atau download di sini
5. Buatlah file php seperti dibawah ini

<?php
if(isset($_POST['captcha'])){
if($_POST["cap_cek"] != $_POST["pilihan"])
{
die('{"salah nda..."}');
}
else
die('{"bener nda..."}');
}

require_once('class.mysql.php');
$mysql = new Mysql();
$mysql->connect();

if($mysql->execute("select * from captcha order by rand() limit 1")){
$data = $mysql->getDataSet();
}else{
$data = 0;
}
$nama = $data[0][1];
$gambar = $data[0][2];
$id_c = $data[0][0];


if($mysql->execute("select * from captcha where id_captcha!=$id_c order by rand() limit 3 ")){
$data = $mysql->getDataSet();
}else{
$data = 0;
}
//gabungkan hasil dalam satu array
for($i=0;$i<4;$i++){
if($i<3){

$captcha_nama[$i] = $data[$i][1];
}
else{

$captcha_nama[$i] = $nama;
}
}

$rand_keys=array_rand($captcha_nama,4);

?>
<form method="post" action="" name="captcha">
<table border="0">
<tr>
<td colspan="3">Apakah nama Hewan Di Bawah ini: </td>
</tr>
<tr>
<td ><img src="<?=$gambar?>" /></td>
<td >&nbsp;</td>
<td >
<?php
for($i=0;$i<4;$i++){
?>
<input name="pilihan" type="radio" value="<?=$captcha_nama[$rand_keys[$i]] ?>" /> <?=$captcha_nama[$rand_keys[$i]] ?>
<?php
}
?>
</td>
</tr>
<tr>
<td colspan="3">
<input type="hidden" name="cap_cek" value="<?=$nama ?>" >
<input type="submit" name="captcha" value="cek captcha!">
</td>
</tr>
</table>
</form>

6. Selesai dan download file lengkap di sini

1 comment:

Pencarian Google