Cara membuat validasi captcha dengan PHP
Pada kesempatan kali ini saya akan memberikan tutorial untuk membuat captcha sederhana dengan PHP. Kita ketahui untuk menghindari inputan yang tidak valid di form maka di perlukan validasi captcha agar inputan yang masuk adalah bukan inputan robot dan benar benar manusia yang melakukan input pada form yang kita buat.
Karena banyaknya inputan yang tidak valid atau spam robot yang sering menyerang form - form yang belum memiliki validasi captcha maka sangat penting untuk anda memiliki form yang sudah di validasi dengan captcha sehingga terhidar dari spam robot dan inputan yang masuk di form adalah benar - benar inputan manusia.
Untuk membuat captcha pertama - tama buatlah sebuah folder dengan nama captcha di direktori c:/xampp/htdocs kemudian copy dan pastekan kode di bawah ini simpan dengan nama file generate.php file ini nantinya akan menjadi generator untuk menampilkan kombinasi huruf dan angka yang digunakan untuk validasi captcha
Fle generate.php
<?php session_start(); function acakCaptcha() { $kode = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789"; $pass = array(); $panjangkode = strlen($kode) - 2; for ($i = 0; $i < 5; $i++) { $n = rand(0, $panjangkode); $pass[] = $kode[$n]; } return implode($pass); } //hasil kode acak disimpan di $code $code = acakCaptcha(); //kode acak disimpan di dalam session agar data dapat dipassing ke halaman lain $_SESSION["code"] = $code; //membuat background $wh = imagecreatetruecolor(173, 50); $bgc = imagecolorallocate($wh, 22, 86, 165); //membuat text warna $fc = imagecolorallocate($wh, 223, 230, 233); imagefill($wh, 0, 0, $bgc); imagestring($wh, 10, 50, 15, $code, $fc); //membuat gambar header('content-type: image/jpg'); imagejpeg($wh); imagedestroy($wh); ?>
Selanjutnya silahkan simpan file berikut di direktori c:/xampp/htdocs/captcha yang sudah di buat sebelumnya, copy kode di bawah ini dan simpan sebagai index.php
File index.php
<html> <head> <title>Latihan Capcha dengan PHP | www.hakkoblogs.com</title> <meta name="description" content="Latihan captcha php"> <meta name="keyword" content="Latihan captcha PHP"> <meta name="author" content="Hakko Bio Richard"> </head> <body> <?php session_start(); if(isset($_POST['input'])){ if($_SESSION["code"] != $_POST["kode"]){ echo "<script>alert('captcha yang anda masukkan salah');window.history.go(-1);</script>"; } else { date_default_timezone_set('Asia/Jakarta'); $tanggal = date("Y-m-d"); $jam = date("H:i:s"); $nama = $_POST['nama']; $email = $_POST['email']; $alamat = $_POST['alamat']; echo "<h3>Data yang anda masukkan adalah</h3><br/>"; echo "Tanggal : $tanggal <br/>"; echo "Jam : $jam <br/>"; echo "Nama Anda : $nama<br/>"; echo "Email Anda : $email'.<br/>"; echo "Alamat Anda : $alamat"; } } ?> <h1>Form dengan captcha PHP | www.hakkoblogs.com</h1> <form name="form1" id="form1" method="POST" action=""> <table> <tr> <td>Nama</td> <td>:</td> <td><input type="text" name="nama" id="nama" placeholder="Nama Anda" /></td> </tr> <tr> <td>Email</td> <td>:</td> <td><input type="email" name="email" id="email" placeholder="Email Anda" /></td> </tr> <tr> <td>Alamat</td> <td>:</td> <td><input type="text" name="alamat" id="alamat" placeholder="Alamat Anda" /></td> </tr> <tr> <td></td> <td></td> <td><img src="generate.php" alt="gambar"/></td> </tr> <td></td> <td></td> <td><input type="text" name="kode" id="kode" placeholder="Kode Captcha" maxlength="5"/></td> </tr> <tr> <td></td> <td></td> <td><input type="submit" name="input" id="input" value="Input" /> <input type="reset" name="reset" id="reset" value="Reset Data" /></td> </tr> </table> </form> </body> </html>
Langkah selanjutnya menjalankan file captcha php dengan memanggil nya via browser, silahkan ketikkan localhost/captcha maka anda akan mendapatkan tampilan seperti di bawah ini