Oleh karena itu, dibutuhkan sebuah kode acak yang harus diisi sebelum melakukan submit form. Pada tutorial kali ini saya akan mencoba menjelaskan pembuatan captcha pada pemrograman PHP.
Form yang akan saya buat hanya memiliki 1 inputan, yaitu inputan khusus untuk captcha nya itu sendiri. Berikut coding dasar pembuatan captha:
<?php
// random angka 10000 hingga 99999,
// Anda juga bisa menggunakan fungsi random yg dibuat
// agar dapat menampung huruf dan angka
$teksnya = rand(10000,99999);
?>
<form method="POST">
Kode Capcha :<br />
<input readonly="" type="text" value="<?php echo $teksnya; ?>" />
Masukkan Kode Diatas:<br />
<input name="capt" type="text" value="" />
<input name="submit" type="submit" />
</form>
coding diatas akan menghasilkan bentuk form seperti ini:![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8z7qZEm6u7z4bcNSH45lGCx67tRH7PfUeirjsNV_0M2gqltxpr7RF-lnM5fryMglbTBsrY8Iah4sv-IDHkBOb-qozBtf_N6QFFPBo7UQgA1rdLbAAyh4KsW3EGJQU39bFMiT_hMTQWX4/s200/Screenshot_7.jpg)
Anda dapat melihat, kode Captcha yang dihasilkan adalah hasil random angka 10000 hingga 99999. Kode tersebutlah yang akan dicek benar atau tidak pengisiannya pada saat user melakukan submit.
Kemudian, disaat user melakukan submit, cek apakah capthca sesuai yang diisi user atau tidak. Karena posisi penyimpanan captcha sebelumnya dibutuhkan, maka penyimpanan dilakukan di SESSION.
sehingga coding diatas dilengkapi menjadi:
<?php
session_start();
//cek disini, sebelum generate captcha baru, jangan terbalik
if ($_SESSION['capt'] == $_POST['capt']){
echo 'Captcha Benar';
// proses-proses lainnya.
}else{
echo 'Capthca Salah';
}
// random angka 10000 hingga 99999,
// Anda juga bisa menggunakan fungsi random yg dibuat
// agar dapat menampung huruf dan angka
$teksnya = rand(10000,99999);
$_SESSION['capt'] = $teksnya;
?>
<form method="POST">
Kode Capcha :<br/>
<input type="text" value="<?php echo $teksnya; ?>" readonly/><br/>
Masukkan Kode Diatas:<br/>
<input type="text" name="capt" value="" /><br/>
<input type="submit" name="submit"/>
</form>
Silahkan dicoba terlebih dahulu sebelum dilanjutkan. Ingat untuk tidak terbalik, pengecekan dilakukan diatas fungsi generate capctha yang baru.Kendalanya sekarang adalah, kode tersebut terlalu riskan, karena dapat diambil dengan Curl, atau dapat juga dicopas saja oleh user. Sehingga dibutuhkan fungsi khusus agar kode tersebut ditampilkan dalam bentuk gambar.Oleh karena ini, perlu dibuat sebuah fungsi untuk mengubah teks menjadi gambar, agar hanya bisa dibaca dan tidak dapat dicopy atau di grab. Gambar ini nantinya akan dipanggil oleh halaman yang akan menampilkan captcha.
Untuk lebih jelasnya, coding-coding yang saya jelaskan diatas dipisah, menjadi 2 halaman.
index.php
<?php
session_start();
if ($_SESSION['capt'] == $_POST['capt']){
echo 'Captcha Benar';
}else{
echo 'Capthca Salah';
}
?>
<form method="POST">
Kode Capcha :<br/>
<img src='capt.php'/><br/>
Masukkan Kode Diatas:<br/>
<input type="text" name="capt" value="" /><br/>
<input type="submit" name="submit"/>
</form>
capt.php
<?php
session_start();
$textnya = rand(10000,99999);
$_SESSION["capt"] = $textnya;
//warna gambar dan teks
$width = 65;
$height = 25;
$font_size = 14;
$image_p = imagecreate($width,$height);
$white = imagecolorallocate($image_p,0,0,0);
$black = imagecolorallocate($image_p,225,225,225);
imagestring($image_p,$font_size,5,5,$textnya,$black);
imagejpeg($image_p,null,80);
?>
Silahkan buat masing-masing halaman tersebut, jalankan file index.php, dan captcha Anda telah selesai jika Anda telah mendapatkan output seperti ini
1 komentar:
:) Makasih bang
Untuk menuliskan Syntax: [code] code disini [/code]
Untuk menuliskan Quote: [quote] quote disini [/quote]
Berkomentarlah sesuai topik