Halo teman-teman, untuk tutorial kali ini kita akan mencoba membuat sebuah Captcha dengan menggunakan PHP. Caranya sebenarnya tidaklah terlalu sulit. Disini kita akan mencoba membuat Captcha sederhana dengan menggunakan angka dan huruf secara acak.
Jadi jika ada pengguna yang ingin masuk kedalam sebuah halaman web tertentu akan kita buatkan sebuah parameter. Jika kode yang dimasukkan tidak cocok pada kode yang tampil, maka akan ditolak jika sebaliknya maka halaman akan diteruskan.
Buatlah file dengan nama captcha.php
<?php
session_start();
$cap = substr(str_shuffle("01234567890abcdefghijklmnopqrstuvwxyz"), 0, 6); // string akan diacak sebanyak 6 karakter 0-9 dan a-z
$_SESSION['tiket_cap'] = $cap;
$gambar = imagecreate(60, 20); // ukuran width=60, height=20
$wrn = imagecolorallocate($gambar, 0, 0, 0); // warna kotak
$wrt = imagecolorallocate($gambar, 255, 255, 255); // warna tulisan
imagefilledrectangle($gambar, 0, 0, 50, 20, $wrn);
imagestring($gambar, 10, 3, 3, $cap, $wrt);
imagejpeg($gambar);
?>
kemudian dengan melanjutkan halaman index.php
<?php
session_start();
if(isset($_POST['cek'])){ // jika tombol Masuk di Klik
if($_SESSION['tiket_cap'] == $_POST['kcapt']){
echo "<script type='text/javascript'>alert('Kode CAPTCHA cocok!')</script>";
// buat redirect halaman misalnya ke index.php
// header('location: index.php');
} else {
echo "<script type='text/javascript'>alert('Kode CAPTCHA Gagal!')</script>";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Simple Captcha | YELLOWWEB.ID</title>
</head>
<body>
<form action="" method="POST">
Kode : <img src="captcha.php"><br>
<input type="text" name="kcapt" maxlength="6"><br>
<input type="submit" name="cek" value="Masuk">
</form>
</body>
</html>
Untuk keterangan skrip sudah ada disamping (komentar). Disini kita melihat beberapa string yang akan dikonversi kedalam sebuah gambar.
imagecolorallocate skrip untuk memberikan sebuah warna. Untuk referensinya bisa teman-teman ambil DISINI.
imagefilledrectangle skrip untuk menggambar sebuah kotak dengan blok.
imagestring skrip untuk membuat teks secara horizontal.
imagejpeg hasil konversi dari string ke gambar.
Untuk demonya teman-teman bisa lihat disini
URL: http://www.yellowweb.id/demo/simple-captcha/