Senin, 11 Januari 2016

Tutorial PHP : Cara Membuat Captcha di PHP

Kita sering melihat sebuah Captcha ketika ingin membuat sebuah akun seperti email contoh : gmail.com. Captcha yang sering orang pakai adalah Captcha gambar yang mana Captcha tersebut menyuruh kita untuk menuliskan kata ataupun huruf yang ada pada gambar tersebut. Baru-baru ini juga ada Captcha yang menyuruh kita menandai "Saya bukan robot" setelah itu kita disuruh memilih seperti "Nama Jalan", "Buah", "Pohon", dan lain-lain. Berikut sedikit perkenalan dengan Captcha.

Tutorial PHP : Cara Membuat Captcha di PHP

Pengertian Captcha

CAPTCHA atau Captcha adalah suatu bentuk uji tantangan-tanggapan (challange-response test) yang digunakan dalam perkomputeran untuk memastikan bahwa jawaban tidak dihasilkan oleh suatu komputer. Proses ini biasanya melibatkan suatu komputer (server) yang meminta seorang pengguna untuk menyelesaikan suatu uji sederhana yang dapat dihasilkan dan dinilai oleh komputer tersebut. Karena komputer lain tidak dapat memecahkan CAPTCHA, pengguna manapun yang dapat memberikan jawaban yang benar akan dianggap sebagai manusia. Oleh sebab itu, uji ini kadang disebut sebagai uji Turing balik, karena dikelola oleh mesin dan ditujukan untuk manusia, kebalikan dari uji Turing standar yang biasanya dikelola oleh manusia dan ditujukan untuk suatu mesin. CAPTCHA umumnya menggunakan huruf dan angka dari citra terdistorsi yang muncul di layar. (sumber: https://id.wikipedia.org/wiki/CAPTCHA)

Dari sedikit pengertian diatas maka saya simpulkan bahwa captcha mencegah spam pada sebuah website. Dan pernahkah kita berpikir bagaimana cara membuat captcha dengan PHP ? apakah membuat captcha sendiri itu sulit ?

Sebenarnya membuat captcha untuk website kita sendiri tidak terlalu sulit karena kita bisa menggunakan $_SESSION pada PHP. Membuat captcha sendiri kita cukup menggunakan metode sederhana dan nanti kita dapat mengembangkan captcha sendiri ini agar lebih profesional dan dapat diperjual-belikan. Tanpa basa-basi sekarang coba kita praktekkan cara membuat captcha sendiri dengan php.

Membuat Captcha dengan PHP

Captcha yang akan kita buat sendiri kali ini adalah captcha bilangan matematika, bisa berupa menjadi tambahan, kurangan, perkalian, maupun pembagian. Kita juga bisa menggembangkan captcha yang kita buat ini agar bilangannya menjadi acak, kadang tambahan, kadang kurangan, kadang perkalian, dan kadang pembagian. It's Awesome Bro.
Disini saya hanya memberikan contoh sederhananya saja karena saya juga masih minim pengetahuan tentang PHP. Skip -

1. Buat File

Buatlah file dengan nama apa saja yang penting formatnya harus PHP. Dalam contoh ini saya menggunakan nama captcha.php, selanjutnya kita meggunakan angka acak dari 1 sampai 10 dengan menggunakan kode rand(1,10). Mari kita coba code tersebut.
Random Angka
<?php
echo rand(1,10)
?>

Simpan dan jalankan file captcha.php tersebut dan coba reload beberapa kali apakah angka yang dihasilkan berubah-ubah. Jika berubah maka tahap pertama kita berhasil. Next -

2. Konsep $_SESSION

Tahap kedua kali ini adalah kita coba merekam apa yang dihasilkan dari kode rand(1,10) tersebut dengan menggunakan $_SESSION pada php. Coba kita praktekkan kode tersebut.
Konsep $_SESSION
<?php
$_SESSION['angka_1'] = rand(1,10);
echo $_SESSION['angka_1'];
?>

Dari kode diatas akan menghasilkan kode random juga, tetapi kode randomnya sudah terekam pada $_SESSION['angka_1']. Sehingga kita menampilkan angka random tadi dengan menggunakan kode echo $_SESSION['angka_1'].
Untuk membuat bilangan seperti tambahan maka kita harus mempunyai kode random yang kedua. Kita bisa menggunakan $_SESSION['angka_2'] ataupun dengan nama lain yang menggambarkan bahwa itu adalah angka yang ke-2. Kawan bisa melihat contoh berikut.
Konsep $_SESSION
<?php
$_SESSION['angka_1'] = rand(1,10);
$_SESSION['angka_2'] = rand(1,10);
echo $_SESSION['angka_1'];
echo $_SESSION['angka_2'];
?>

Simpan kode tersebut dan jalankan. Maka kita akan mendapatkan dua buah angka yang mana masing-masingnya sudah diacak oleh sistem sehingga nanti kita hanya menentukan operasi bilangannya saja dalam hal ini saya menggunakan operasi "penjumlahan". Next -

3. Menentukan Operasi Bilangan

Sebelum membuat captcha sendiri dengan metode bilangan matematika, mari kita buat sebuah operasi bilangan yang mana nanti pengunjung akan menjawab berapa jumlah dari operasi bilangan yang kawan buat tadi, disini saya akan membuat operasi hitung tentang penjumlahan. Sebelumnya kita buat dulu $_SESSION['hasil'] untuk merekam hasil yang akan kita dapati nanti. Kawan bisa melihat kodenya seperti dibawah ini
Operasi Hitung
<?php
$_SESSION['angka_1'] = rand(1,10);
$_SESSION['angka_2'] = rand(1,10);
$_SESSION['hasil'] = $_SESSION['angka_1'] + $_SESSION['angka_2'];
echo $_SESSION['angka_1'] .' + '.$_SESSION['angka_2'] . ' = ' . $_SESSION['hasil'];
?>

Dari kode diatas maka sekarang tugas kita hanya membuat sebuah input yang mana nanti sebuah input tersebut akan digunakan oleh pengguna untuk mengetikkan hasil dari penjumlahan angka yang sudah dirandom pada $_SESSION['angka_1'] dan $_SESSION['angka_2'] tadi.

4. Membuat Input Hasil

Setelah kita mempraktekkan ketiga contoh diatas maka sekerang kita membuat inputan untuk membuat captcha sendiri dengan PHP. Sebelumnya kita buat dulu inputan agar pengguna bisa menginputkan hasil dari angka random kita tadi. Copy script berikut dan coba jalankan.
Membuat Inputan
<form method="post">
<input type="text" name="captcha" />
<input type="submit" name="submit" value="Cek Captcha" />
</form>

Dari script diatas maka kita akan mendapatkan sebuah inputan. Dari inputan tersebut kita coba gabungkan dengan PHP. Sebelumnya buat dulu file dengan nama hasil.php dan salin kodenya dibawah ini.
Kode captcha.php
<?php
session_start();
$_SESSION['angka_1'] = rand(1,10);
$_SESSION['angka_2'] = rand(1,10);
$_SESSION['hasil'] = $_SESSION['angka_1'] + $_SESSION['angka_2'];
?>
<form action="hasil.php" method="post">
<?php echo $_SESSION['angka_1'] .' + '.$_SESSION['angka_2'] . ' = '; ?> <input type="text" name="captcha" />
<input type="submit" name="submit" value="Cek Captcha" />
</form>

Sekarang kita buat file dengan nama hasil.php dan copy script dibawah ini.
Kode hasil.php
<?php
session_start();
if (isset($_POST['submit'])) {
if ($_SESSION['hasil'] == $_POST['captcha']) {
echo "Angka yang anda ketik sesuai";
} else {
echo "Angka yang anda ketik tidak sesuai";
}
}
?>

Simpan dan jalankan captcha.php maka ketika kita menginput hasil dari angka yang sudah diacak tersebut kita langsung ditujukan ke halaman hasil.php. Dihalaman hasil.php kita akan mendapati sebuah tulisan apakah hasil dari yang kita input tersebut telah sesuai dengan hasilnya atau belum. Untuk demonya kawan bisa melihat dihalam berikut.
Demo Captcha
Terima kasih telah membaca sebuah artikel Cara Membuat Captcha di PHP. Baca lebih banyak lagi artikel tentang PHP atau tentang HTML pada website ini. Dan jangan lupa untuk berbagi yang ada dibawah judul artikel ini. Jika masih ada kesulitan tentang penerapan PHP pada website bisa menggunakan komentar dibawah. Salam.