Membuat Chaptcha Anti Spam dengan menggunakan PHP

Malam sobat blogger, pada kesempatan kali ini saya akan share tentang cara membuat Chaptcha anti SPAM dengan menggunakan PHP.

Contohnya bisa dilihat pada gambar dibawah ini:


Okeh, langsung saja ke topik permasalahannya....
Bagaimana cara buatnya...?!

Pertama-tama buat file PHP dengan nama chaptcha.php
Copykan script dibawah ini:

<? session_start();
//untuk membuat angka dan huruf yang randome
$str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstupwxyz0123456789';

//ambil 5 string yang bisa terdiri dari angka dan huruf
$rand=substr(str_shuffle($str),0,5);

//fungsi acak
$no=rand(1,3);

//menempelkan angka tadi ke sebuah gambar background yang sudah di tetapkan sebelumnya.
$image=imagecreatefromjpeg("chaptcha.jpg");
$font=5;
$black=imagecolorallocate($image,0,0,0);
$y=(imagesy($image)-imagefontheight($font))/2;
imagestring($image,$font,8,$y,$rand,$black);

//membuat session string randome
$_SESSION['RandVal']=md5($rand);
header('Content-type:image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>


Selanjutnya buat file baru dengan nama index.php

<html>
<head>
<title>Code Chaptcha</title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
</head>
<body>
<form action="verifikasi.php" method="post" name="form1">
<table width="100%" border="0">
<tr >
<td width="8%" align="left"><font face="verdana" size="2">Nama</font></td><td width="1%">:</td><td width="91%" align="left">
<input type="text" size="30" name="nama" id="nama"></td>
</tr>
<tr>
<td align="left"><font face="verdana" size="2">Email</font></td><td>:</td><td align="left">
<input type="text" name="email" id="email" size="30"></td>
</tr>
<tr>
<td align="left" valign="top"><font face="verdana" size="2">Pesan</font></td><td>:</td>
<td align="left"><textarea name="pesan" id="isi" cols="23" rows="5"></textarea></td>
</tr>
<tr>
<td align="left" valign="top">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td align="left"><img src="chaptcha.php" border="0"/></td>
</tr>
<tr>
<td align="left" valign="top">Input Kode </td>
<td valign="top">:</td>
<td align="left"><input name="kode" type="text" id="kode" size="30"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
<td><input type="submit" name="ok" value="POST"></td>
</tr>
</table>
</form>

</body>
</html>

Nah sekarang sobat tinggal buatkan verifikasinya, jadi buat file baru lagi dengan nama verifikasi.php

<? session_start();?>
<html>
<head><title>Verifikasi</title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
</head>
<body>
<?
if(isset($_POST['ok']) && isset($_POST['kode'])){
$kode=trim($_POST['kode']);
if(md5($kode)===$_SESSION['RandVal']){
echo "Kode yang Anda masukan benar, data anda adalah : ";
echo "<br><br><i>";
echo "Nama Anda : ".$_POST['nama']."<br>";
echo "Email Anda : ".$_POST['email']."<br>";
echo "Pesan Anda : ".$_POST['pesan']."<br></i>";
}else{
echo "Maaf, Kode yang Anda masukan salah. silahkan ";
?><a href="index.php">ulangi!</a><?
}
}
?>
</body>
</html>

Untuk source lengkapnya sobat bisa download pada link yang ada di bawah ini:


EmoticonEmoticon