Captcha adalah singkatan dari Completely Automated Public Turing test to tell Computers and Humans Apart, jadi dari kepanjangan captcha bisa kita ambil kesimpulan bahwa Captcha merupakan sebuah teknik untuk mengecek robot atau manusia.
Captcha biasanya sebuah pengecekan atau pemeriksaan yang berbentuk gambar atau tulisan dan biasanya captcha terdapat di sebuah form, adi di sini captcha bertujuan untuk memeriksa bahwa yang mengisi form adalah manusia atau robot(komputer).
Ada banyak orang yang membuat bot dengan tujuan sekedar mengisi form, melakukan spam melalui form dan ada juga dengan tujuan yang kurang baik yaitu melakukan brute force pada form login biasanya. Tujuan dan kegunaan dari captcha ini adalah untuk menangkal bot yang mengisi form, jadi bisa menangkal spam pada form website kita.
Jadi captcha akan memeriksa yang mengisi form adalah manusia atau robot, kalau robot otomatis tidak akan bisa mengisi form karena ada captcha. Bot tidak bisa mendeteksi tulisan apa yang terdapat dalam gambar captcha, oleh sebab itu captcha dibuat dalam bentuk gambar. Tetapi kalau manusia yang mengisi formnya pasti bisa karena manusia bisa membaca tulisan captcha dan kemudian bisa menuliskannya kembali untuk divalidasi.
Adapun kegunaan captcha adalah sebagai berikut :
- Mencegah Spam
- Mencegah serangan brute force
- dan banyak lagi kegunaan dari captcha yang akan kita rasakan sendiri setelah membuatnya.
Untuk membuat captcha kita buat dulu sebuah form, from tersebut nantinya yang akan kita berikan captcha. Berikut langkah-langkah untuk membuat captcha dengan PHP :
- Buat folder project di dalam htdocs, pada tutorial ini menggunakan folder dengan nama belajarcaptcha.
- Buat sebuah file php dengan nama index.php di dalam folder project belajarcaptcha.
<!DOCTYPE html> <html> <head> <title>Cara Membuat Captcha dengan PHP</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <h1 align="center">Cara Membuat Captcha dengan PHP</h1> <div class="box"> <?php if(isset($_GET['pesan'])) { if($_GET['pesan'] == "salah") { echo "<p>Captcha tidak sesuai.</p>"; } } ?> <h2 align="center">Isi Captcha Dengan Benar</h2> <form action="cek_captcha.php" method="post"> <table align="center"> <tr> <td>Captcha</td> <td><img src="captcha.php" alt="gambar" /> </td> </tr> <tr> <td>Isikan captcha </td> <td><input name="nilaiCaptcha" value=""/></td> </tr> <tr> <td></td> <td><input type ="submit" value="Cek Captcha"></td> </tr> </table> </form> </div> </body> </html>
- Kemudian kita percantik sedikit biar terlihat lebih rapi formnya dengan menggunakan CSS, dengan cara kita buat satu file CSS dengan nama style.css.
body{ font-family: "roboto"; background: #F4F4F4; } h1,p{ text-align: center; } .box{ margin: 10px auto; background: #fff; width: 400px; padding: 20px 0px; } .box table tr td{ padding: 5px; } .box table tr td input{ padding: 5px; font-size: 12pt; }
- Buat sebuah file php lagi dengan nama captcha.php. File captcha.php inilah yang akan membuat gambar captcha nya.
<?php //mengaktifkan session session_start(); header("Content-type: image/png"); //menentukan session $_SESSION["Captcha"]=""; // membuat gambar dengan menentukan ukuran $gbr = imagecreate(200, 50); //warna background kotak captcha biru imagecolorallocate($gbr, 30, 144, 255); // pengaturan font captcha $color = imagecolorallocate($gbr, 253, 252, 252); $font = "Sketch.otf"; $ukuran_font = 20; $posisi = 32; // membuat nomor random acak dan ditampilkan pada gambar for($i=0;$i<=5;$i++) { // jumlah karakter $angka =rand(0, 9); $_SESSION["Captcha"].=$angka; $kemiringan = rand(20, 30); imagettftext($gbr, $ukuran_font, $kemiringan, 8+15*$i, $posisi, $color, $font, $angka); } //untuk membuat atau generate gambar imagepng($gbr); imagedestroy($gbr); ?>
Perhatikan sintak di atas, untuk membuat captcha kita memerlukan session php, jadi kita aktifkan dulu session php.
session_start();
Kemudian memberikan fungsi berikut untuk dapat membuat gambar dengan php.
header("Content-type: image/png");
Selanjutnya syntax berikutnya yang bertugas untuk membuat gambar dengan php.
// menentukan session $_SESSION["Captcha"]=""; // membuat gambar dengan menentukan ukuran $gbr = imagecreate(200, 50); //warna background kotak captcha biru imagecolorallocate($gbr, 30, 144, 255); // pengaturan font captcha $color = imagecolorallocate($gbr, 253, 252, 252); $font = "Sketch.otf"; $ukuran_font = 20; $posisi = 32; // membuat nomor random acak dan ditampilkan pada gambar for($i=0;$i<=5;$i++) { // jumlah karakter $angka =rand(0, 9); $_SESSION["Captcha"].=$angka; $kemiringan = rand(20, 30); imagettftext($gbr, $ukuran_font, $kemiringan, 8+15*$i, $posisi, $color, $font, $angka); } //untuk membuat atau generate gambar imagepng($gbr); imagedestroy($gbr);
Jadi angka captcha-nya kita buat secara random dengan sintak :
for($i=0;$i<=5;$i++) { // jumlah karakter $angka =rand(0, 9); $_SESSION["Captcha"].=$angka; $kemiringan = rand(20, 30); imagettftext($gbr, $ukuran_font, $kemiringan, 8+15*$i, $posisi, $color, $font, $angka); }
Untuk menampilkan text pada gambar captcha, pada tutorial ini dengan pengaturan memisahkan ke dalam variabel masing-masing .
imagettftext($gbr, $ukuran_font, $kemiringan, 8+15*$i, $posisi, $color, $font, $angka);
Jangan lupa untuk menyertakan file font yang akan kita gunakan, perhatikan pada variabel font di atas, di sini menggunakan font Sketch.otf, font tersebut bisa kita download di sini, kita juga bisa menggati dengan font yang kita sukai.
$font = "Sketch.otf";
- elanjutnya buat file cek_captcha.php sebagai action untuk instruksi cek captcha. Untuk memastikan apakah captcha yang diinput sudah benar atau belum, maka perlu dilakukan pengecekan atau validasi.
<html> <head> <title>Tutorial Dasar Cara Membuat Captcha Dengan PHP</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <h2 align="center">Cara Mudah Membuat Captcha di PHP</h2> <div class="box"> <?php session_start(); if($_SESSION["Captcha"]!=$_POST["nilaiCaptcha"]) { header("location:index.php?pesan=salah"); } else { echo"<p>Captcha Anda Benar!</p>"; echo "<p><a href='./'>Back</a></p>"; } ?> </div> </body> </html>
Sekarang kita coba akses melalui browser dengan alamat http://localhost/belajarcaptcha/, maka hasilnya seperti berikut :
Isikan captcha yang sesuai dengan gambar captcha yang muncul, jika captcha yang dimasukkan benar maka akan muncul pemberitahuan bahwa captcha yang dimasukkan benar dengan menampilkan “Captcha Anda Benar!“, tetapi jika salah maka akan dimunculkan pesan “Captcha tidak sesuai.“.
Demikian tutorial cara membuat captcha dengan php, semoga bermanfaat.
Be the first to comment