[Tips & Trik]Buat kode verifikasi pada form PHP

Langsung saja ya.. pasti uda pada bisa PHP nya..

Langkah 1: Buat form.html atau form.php

<html>
<head>
<title>Tes Kode Verifikasi</title>
</head>
<body>
<form action="verifikasi.php" method="post">
<table class="bigone">
<tr>
<td align="center">
Pesan:
</td>
<td align="center">
<input type="text" maxlength="16" name="message" size="15">
</td>
</tr>
<tr>
<td align="center">
apa yang kamu lihat<br />
di dalam kotak hitam?<br />
<img src="gambar_kode.php" />:
</td>
<td align="center">
<input type="text" name="captcha_input" size="15">
</td>
</tr>

<tr>
<td align="center" colspan="2">
<input type="submit" id="scratch_submit" value="Kirim Pesan">
</td>
</tr>
</table>
</form>
</body>
</html>

Langkah 2: Buat gambar_kode.php

<?
// *** gambar kode verifikasi ***
// *** http://duniaenjoy.blogspot.com ***

session_start();

// *** Memberitahu browser jenis file apa yang akan ditampilkan! ***
header("Content-Type: image/png");

// *** Mengirim image yang telah digenerate ke browser ***

create_image();
die();

// ***Kode Fungsi***
function create_image()
{
// *** Generate passcode dengan menggunakan md5
// (akan mengubah semua huruf dan angka hexa menjadi kecil/lowercase ***
$md5 = md5(rand(0,9999));
$pass = substr($md5, 10, 5);

// *** Atur session cookie,jadi kita tahu apa passcode nya ***
$_SESSION["pass"] = $pass;

// *** Membuat sumber image ***
$image = ImageCreatetruecolor(150, 60);

// *** Membuat beberapa warna supaya menarik! hhehe ***
$clr1 = ImageColorAllocate($image, rand(121,255), rand(126,255), rand(197,255));
$clr2 = ImageColorAllocate($image, rand(100,255), rand(120,255), rand(105,255));
$clr3 = ImageColorAllocate($image, rand(131,255), rand(137,255), rand(100,255));
$clr4 = ImageColorAllocate($image, rand(160,255), rand(129,255), rand(120,255));
$clr5 = ImageColorAllocate($image, rand(131,255), rand(137,255), rand(100,255));
$clr6 = ImageColorAllocate($image, rand(160,255), rand(129,255), rand(120,255));

// *** Atur ukuran image(bisa juga diatur pada form.html nya) ***
imagefontheight(60);
imagefontwidth(60);

// *** Menambahkan passcode ke image ***
imagestring($image, rand(3,7), rand(0,75), rand(0,35), $pass, $clr6);

// *** Menambahkan beberapa baris untuk mengelabui orang-orang***
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr6);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr2);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr6);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr1);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr4);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr3);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr4);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr6);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr5);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr1);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr6);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr5);
imageline($image, rand(1,300), rand(1,3), rand(10,150), rand(0,150), $clr3);
imageline($image, 10, 0, 14, 10, $clr3);
imageline($image, 20, 0, 24, 30, $clr1);
imageline($image, 55, 0, 34, 60, $clr6);
imageline($image, 25, 0, 84, 10, $clr2);
imageline($image, 77, 0, 14, 10, $clr5);

// *** Output image dengan format png ***
imagepng($image);

// ***Hapus memory... ***
imagedestroy($image);
}
52 ?>

Langkah 3: Buat verifikasi.php

<?
session_start();

if ($_SERVER["REQUEST_METHOD"] <> "POST")
die("You can only reach this page by posting from the html form");

if ( ($_POST["captcha_input"] == $_SESSION["pass"]) &&
(!empty($_POST["captcha_input"]) && !empty($_SESSION["pass"])) )
{
echo "Benar! <br><br>";
echo "Pesan Kamu: \"" . $_POST["message"] ";
} else {
echo "Salah, Anda salah input kode verifikasi<br><br>";
echo "Kamu menginput " . $_POST["captcha_input"];
echo " dimana kode yang benar adalah " . $_SESSION["pass"];
}
?>

Gimana?? Gampang kan ternyata??hehehe..

3 comments:

dalle wahid said...

gambar hasil nya juga dong bro... ditunjukin outputnya jg bro....

hheheeheheh.... kan jadi tambah keren..

RyoKazama said...

gw kasih link contoh nya aja ya..
http://14a.com/~table59/tokosuplemen/?page=btamu

RyoKazama said...
This comment has been removed by the author.

Post a Comment