Captcha merupakan suatu kode / sandi dalam bentuk huruf atau angka atau gabungan keduanya yang digunakan sebagai anti spam pada suatu form. Bentuk captcha bermacam-macam, jenis dan gaya desainnya juga bermacam-macam, namun memiliki fungsi yang sama. Dengan menggunakan captcha kita bisa mencegah robot / script robot yang akan merusak sistem kita dengan cara memasukkannya berulang-ulang.
Langkah pembuatan Captcha adalah sebagai berikut:
1. Membuat file index.php
<!DOCTYPE html> <html> <head> <title>Bedah PHP - Cara Membuat Captcha dengan php</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div class="kotak"> <?php if(isset($_GET['pesan'])){ if($_GET['pesan'] == "salah"){ echo "<center><b style='color: red'>Captcha tidak sesuai !</b></center>"; } } ?> <p>Isi Captcha Dengan Benar</p> <form action="periksa_captcha.php" method="post"> <table align="center"> <tr> <td>Captcha</td> <td><img src="captcha.php" alt="gambar" /></td> </tr> <td>Isikan captcha</td> <td><input name="nilaiCaptcha" value=""/></td> <tr> <td><input type ="submit" value="Cek Captcha"></td> </tr> </table> </form> </div> </body> </html>2. Membuat file captcha.php
<?php //mengaktifkan session session_start(); header("Content-type: image/png"); //menentukan session $_SESSION["Captcha"]=""; //membuat gambar dengan menentukan ukuran $gbr = imagecreate(150, 50); //warna background captcha imagecolorallocate($gbr, 69, 179, 157); //pengaturan font captcha $color = imagecolorallocate($gbr, 253, 252, 252); $color2 = imagecolorallocate($gbr, 0, 0, 0); $font = "Monaco.ttf"; $ukuran_font = 20; $posisi = 32; //membuat nomor acak dan ditampilkan pada gambar for($i=0;$i<=5;$i++){ // jumlah karakter $angka=rand(0, 9); $_SESSION["Captcha"].=$angka; $kemiringan= rand(-20, 20); imagettftext($gbr, $ukuran_font, $kemiringan, 9+15*$i, $posisi, $color, $font, $angka); imagettftext($gbr, $ukuran_font, $kemiringan, 11+15*$i, $posisi, $color2, $font, $angka); } //untuk membuat gambar imagepng($gbr); imagedestroy($gbr); ?>3. Membuat file cek.php untuk periksa kode captcha
<!DOCTYPE html> <html> <head> <title>Bedah PHP - Cara Membuat Captcha dengan php</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div class="kotak"> <?php session_start(); if($_SESSION["Captcha"]!=$_POST["nilaiCaptcha"]){ header("location:index.php?pesan=salah"); }else{ echo "<center>"; echo "<b style='color: green'>Captcha Anda Benar</b><br>"; echo "<br><a href='index.php'>HOME</a>"; echo "</center>"; } ?> </div> </body> </html>4. Membuat file style.php sebagai desain form nya
body{ font-family: "roboto"; background: #F4F4F4; } h1,p{ text-align: center; } .kotak{ margin: 10px auto; background: #fff; width: 400px; padding: 20px 0px; } .kotak table tr td{ padding: 5px; } .kotak table tr td input{ padding: 5px; font-size: 12pt; }
Direktori File |