Membuat Custom Button Captcha dengan Font Awesome

dokumen-dokumen yang mirip
Membuat Responsive dan Fleksibel Image Gallery dengan JQuery Fleximage

Tutorial Lengkap Memahami CSS Display

Membuat Desain Custom Input (Checkbox + Radio Button) pada Form

Membuat Tabel Responsive dengan CSS

Tutorial Dasar CSS Preprocessor LESS

Membuat Layout Footer Menempel ke Bawah

Membuat Responsive Layout dengan CSS Media Query

Responsive Layout dengan Bootstrap [Part 2]

Memanfaatkan CSS Animasi [Part 2]

Membuat Tooltip Sendiri dengan CSS

Membuat Layout Header Diam di Tempat (Fix Header)

Membuat Web Chatting dengan Ajax Jquery, PHP, dan Bootstrap [Part 2]

Tutorial Lengkap Memahami CSS Position

Membuat Top Fixed Responsive Navbar Twitter Bootstrap

Mendesain Custom Tabel dengan Pseudo Element CSS

Pemrograman Web PRAKTIKUM 6. Query Data 2. TUJUAN BELAJAR Mahasiswa dapat menggunakan PHP dan MySQL untuk mengupdate data

MEMBUAT LAYOUT DENGAN CONTAINER BOOTSTRAP

PRAKTIKUM PHP 5 VALIDASI FORM DENGAN PHP

SImple Pop-Up Modal dengan CSS3 dan Jquery

Langkah Cara Membuat Form Login Menggunakan PHP dan MySQL Langkah 1: Membuat Tabel MySQL User/Pengguna

Membuat Display Produk dalam Layout Box 4 Kolom

Image Slider 3D. Oleh: Anthonius

Cara Memasukan Font Baru Ke Dalam Web Menggunakan CSS

Membuat Online Messanger atau Chat dengan PHP, MySQL, JQuery, Bootsrtrap 3 dan Font Awesome 4 [Part 3]

Gambar 1. Tampilan form karyawan

2014 TUTORIAL PANADA FRAMEWORK BY DIMAS EDU

Membuat Duplikasi Form dengan Jquery (Dynamic Form)

Membuat Themes Wordpress sendiri - Part 1

Publish: 7 Juni 2012 Author & Copyright: Johan Status: FREE tutorial

Membuat dan Menampilkan QR Code secara Dinamis dengan PHP

TUTORIAL MEMBUAT PROGRAM KALKULATOR DENGAN OOP PHP

Pemrograman Web PRAKTIKUM 3 CSS. TUJUAN BELAJAR Mahasiswa dapat menggunakan css untuk mengatur gaya tampilan elemenhtml

SMH2D3 Web Programming. 7 BAB V PHP SESSION & COOKIES. H a l IDENTITAS. Kajian Teknik pemrograman menggunakan PHP

Perkenalan Font Awesome untuk Pure CSS dan Bootstap. [Part 1]

Membuat Simpel Site HTML Layout Menggunakan Tag div

AJAX dengan jquery Part 3

Secara garis besar, terdapat 3 cara menginput kode CSS, yaitu metode Inline Style, Internal Style Sheets, dan External Style Sheets.

MEMBUAT MASTER BERITA Teknik Informatika Sopingi, M.Kom

108

Memanfaatkan CSS Animasi dan Transisi [Part 1]

TUTORIAL CSS FRAMEWORK

Cara Membuat Security Image Code Dengan PHP

Perkenalan Glyphicon Bootstrap dan Cara Mudah Menggunakannya

Page 1 of 8 Tutorial Font Awesome UTS Stmik El Rahma

Pemrograman Web Week 2. Team Teaching

Dropdown Berhubungan (Sync Dropdown) Dengan CI & MySQL

Membuat Button Dengan CSS

Form Mampu membuat form dan dan mengirim data ke halaman lain Pengaturan Validasi dan keamanan form. Sesi 5

buat Lightbox mu sendiri dengan jquery

WEB STATIS MEMBUAT TUTORIAL PENGGUNAAN FRAMEWORK CSS

Membuat Aplikasi CRUD dengan OOP dan PDO MySQL

Kapita Selekta (KBKI82127, 2 sks) Materi : Penanganan Form

Prak. E-Bussiness & E-Commerce HTML. (HyperText Markup Language) RAHMADY LIYANTANTO liyantanto.wordpress.com

Tutorial CSS Desain Layout 1 Dengan HTML5 dan CSS

[SANGAT MUDAH] Cara Membuat Slide Show dengan Bootstrap 3

TUTORIAL CODEIGNITER Langkah Tepat menjadi Web Developer Handal, menguasai CodeIgniter, jalan membuat aplikasi berbasis website lebih mudah

Tutorial Codeigniter : Membuat multiple language dengan Language Class

Membuat Sistem Pertemanan Sederhana

CSS (Cascading Style Sheet) Oleh : Devie Rosa Anamisa

Script PHP dan MySQL J A M K E E M P A T

PHP dan Framework CodeIgniter

Laporan Bengkel Web II Modul 6

Menampilkan user online seperti di obrolan step by step

KAJIAN 3 Web Responsive

Mahasiswa memahami Pengertian, fungsi, aplikasi untuk menjalankan JavaScript, cara menjalankan kode, cara memasukkan kode JavaScript ke dalam HTML

DOM (Document Object Model) dan Event

MODUL 8 Insert, Update, & delete

MODUL PRAKTIKUM PEMROGRAMAN WEB

Upload File dengan Metode AJAX

Masih tentang bagaimana membuat layout dengan CSS, kita lanjutkan untuk membuat layout yang lain. Berikut ini adalah desain layout yang akan kita buat

Membuat Login Dengan PHP dan MYSQL

TUTORIAL PHP MYSQL Langkah Tepat menjadi Web Developer Handal, menguasai PHP dan MySQL, jalan terbaik membuat website dan aplikasi berbasis web

Dasar Dasar Transisi Di CSS3

Pengenalan Perancangan Web 2017

Membuat Chatbox Sederhana dengan Ajax jquery dan PHP PDO

Membuat Aplikasi Chating Sederhana dengan Jquery, Codeigniter dan Bootsrap

1. Mahasiswa mampu membuat form pada dokumen HTML. 2. Mahasiswa memahami cara penggunaan dari fasilitas Form pada halaman dokumen HTML

A. Tujuan B. Dasar Teori 1. Pemrosesan Form 2. Konsep Penggunaan Tag <form> pada HTML

Membuat Captcha Image menggunakan Codeigniter 2x

Objek Bergoyang CSS3

Facebook App dengan Javascript

Conditional PRAKTIKUM PHP Conditional, Array & Perulangan di PHP

MODUL 11 MEMBUAT LOGIN USER

AJAX dengan jquery Part 1

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

AJAX Tutorial. Contoh AJAX Dasar 1

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

BAB IV PENGUJIAN DAN ANALISIS

PHP & MYSQL. Ingat, PC anda tidak memerlukan tambahan khusus atau apapun untuk melihat hasil eksekusi kode PHP anda. Mengapa?

BAB V DESAIN WEB CSS

Limitasi Text Input dengan Javascript

Tag dasar yang akan kita gunakan untuk membuat form di HTML adalah tag form, input, textarea, select dan option.

Membuat Login Pop Up Dengan JqueryUI

Lisensi Dokumen: Uraian Kasus :

Tutorial CakePHP Dasar Part IV - Searching

Beralih dari Input Submit ke Button dan Cara Mudah Membuat Button Bootstrap

Lampiran 1. Flowchart perancangan sistem

Membuat Scrollspy Dengan Bootstrap

Membuat Online Messanger atau Chat dengan PHP, MySQL, JQuery, Bootsrtrap 3 dan Font Awesome 4 [Part 2]

MODUL PEMROGRAMAN WEB

Transkripsi:

Membuat Custom Button Captcha dengan Font Awesome Oleh: Christian Rosandhy Captcha adalah bagian form yang biasa digunakan untuk memvalidasi user sebelum mengirim form. Kalau captcha pada umumnya mewajibkan kita mengetikkan kata seperti gambar yang disediakan, di captcha kali ini kita akan membuat captcha sederhana model tombol untuk membuat validasi form lebih unik. Untuk caranya, yuk disimak.. Salam jagocoding,, udah lama ga bikin tutor lagi nih sejak ah, sudahlah.. Kesempatan kali ini saya mau share lagi tutorial untuk membuat captcha.. Tapi captcha yang akan kita buat kali ini bukan captcha model tulisan standar,, tapi Button Captcha. Untuk membuat Button Captcha kali ini saya akan menggunakan HTML + CSS + PHP dan bantuan Font Awesome untuk mengerjakan semuanya.. Langsung aja ya,, pertama-tama kita bikin dulu desain layout captchanya pake HTML + CSS dulu. Di bagian ini sebenernya terserah kitanya aja mau desain kayak gimana, cuma kalo desain dari ane sih hasil jadinya mau seperti ini : Pertama-tama, untuk resource yang akan saya pakai,, di tutorial ini saya pake Font Awesome sebagai resource icon-iconnya (bisa download di Font Awesome), dan Bootstrap untuk bantu bikin responsive sama tombol-tombolnya biar cepet.. Jangan lupa download file-file itu ya.. Soalnya untuk HTML dan CSSnya nggak akan terlalu saya jelasin begitu detail.. Karena bagian rumit yang lebih saya konsen yaitu di PHPnya.. <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>form Captcha</title> <link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="css/font-awesome.min.css">

<!--sesuaikan dengan tempat kita meletakkan resource CSS kita--> <style> /*CSS Untuk Captchanya aja~*/ *{margin:0px auto;.captcha-form{background:#f7f7f7; border:1px solid #ededed; padding:10px; border-radius:4px; -moz-border-radius:4px; margin:5px; display:inline-block; vertical-align:top;.captcha-form.big-thumb{background:#fff; display:inline-block; text-align:center; padding:10px 0px; font-size:30px; line-height:50px; width:70px; vertical-align:top;.captcha-form.right{display:inline-block;.captcha-form.helper{display:block;.captcha-form.button-cont{display:inline-block; padding:10px;.captcha-form.button-cont button{float:left; margin:0px 5px;.clear{clear:both; </head> <body> </style> <div class="container"> <form action="" method="post" enctype="multipart/form-data"> <div class="captcha-form"> <!--container captcha utama--!> <div class="big-thumb"> <!--layer penampung icon besar--> "><!--random icon besar akan muncul disini--></span> <div class="right"> <div class="helper">tekan tombol dengan icon yang sama seperti gambar yang sama seperti disamping untuk mengirim. <div class="button-cont"> <!--semua opsi tombol akan muncul dibawah ini secara random--> btn-primary btn-lg"> btn-primary btn-lg"> btn-primary btn-lg">

btn-primary btn-lg"> btn-primary btn-lg"> btn-primary btn-lg"> </form> <div class="clear"> </body> </html> Hasilnya sementara seperti ini : Kok masih kosong? Ya wajar.. nama icon font-awesomenya sama sekali belum dipanggil.. Semuanya icon akan kita panggil secara acak dengan PHP nantinya. Karena layout sudah oke,, sekarang kita akan masuk ke bagian script PHPnya ya untuk memasukkan icon-icon ke tempat semestinya.. Pertama-tama kita buat file PHP baru dengan nama file captcha.php. File captcha.php ini akan kita buat dengan model OOP biar lebih enak diaplikasiin.. Strukturnya yang saya gunakan seperti ini : <?php class Captcha{ var $token, $iconlist, $tokenlist; function construct(){ function create(){

function draw(){ function get_icon(){ Class Captcha ini akan berisi 3 atribut, yaitu $token, $iconlist, dan $tokenlist. Atribut $token digunakan sebagai kode autentikasi valid yang nantinya akan dicek kesesuaiannya. $iconlist akan digunakan untuk menampung nama-nama icon yang akan muncul di tombol-tombol, $tokenlist akan berisi kode autentikasi acak untuk masing-masing tombol icon. Untuk method-methodnya sendiri akan kita buat terdiri dari create(), draw(), dan get_icon(). Method create() adalah method utama yang akan mengerjakan semuanya, method draw() yang akan menggambar captcha tersebut, dan method get_icon() adalah method yang akan mengacak-acak urutan icon yang ditampilkan. Selanjutnya, di method konstruktor [ construct() ] kita langsung beri nilai atribut $token dengan nilai acak. function construct(){ //Fungsi SHA1 akan memberikan karakter 40 digit acak yang akan digunakan sebagai kode autentikasi captcha kita nantinya. $this->token = sha1(md5(rand(1,10000))); Setelah itu, di method get_icon() yang paling bawah, kita hanya perlu mengisi sebuah array yang berisi nama-nama class icon Font Awesome (nama icon lengkap bisa dilihat di https://fortawesome.github.io/font-awesome/cheatsheet/ dan ditambah ke method get_icon sesuai kebutuhan) function get_icon(){ $arr = array( "fa-ambulance", "fa-anchor", "fa-android", "fa-automobile", "fa-bed", "fa-bell", "fa-bicycle", "fa-birthday-cake", "fa-bomb", "fa-child",

"fa-cloud", "fa-cutlery", "fa-cut", "fa-diamond", "fa-eye", "fa-fighter-jet", "fa-flask", "fa-globe", "fa-home", "fa-leaf", "fa-meh-o", "fa-music", "fa-paper-plane", "fa-paw", "fa-puzzle-piece", "fa-star", "fa-sun-o", "fa-trash", "fa-users", "fa-warning", "fa-wrench", "fa-wifi", "fa-user-secret", "fa-university", "fa-linux", "fa-paint-brush", "fa-money", "fa-thumb-tack", "fa-thumbs-up", "fa-motorcycle", "fa-newspaper-o", "fa-heartbeat", "fa-coffee" ); return $arr; Setelah itu, di method create() kita akan membuat sebuah session dengan nilai sesuai token di konstruktor tadi, lalu memanggil icon di method get_icon() untuk ditampilkan. function create(){ $limit = 6; //jumlah tombol yang akan tampil $_SESSION['token'] = $this->token; //membuat session token berdasarkan atribut token di method konstruktor tadi $iconlist = $this->get_icon(); // mengambil nilai icon yang sudah kita buat tadi shuffle($iconlist); // mengacak urutan icon dari method get_icon()

diatas //perulangan dilakukan sebanyak $limit yg ditentukan //atribut iconlist akan diisi sebanyak 6 icon acak //seluruh atribut token akan diisi dengan karakter acak for($i=0;$i<$limit;$i++){ $this->iconlist[$i] = $iconlist[$i]; $this->tokenlist[$i] = sha1(md5(rand(1,10000))); //setelah semuanya siap, method draw() yang akan menampilkannya ke browser $this->draw(); Udah mau selesai.. Beneran.. Sekarang di method draw() ini kita akan mengetik ulang struktur HTML yang kita buat diawal, akan tetapi akan langsung kita isi dengan icon dan nilai token yang sudah diisi di method create() tadi. Icon yang akan muncul nanti akan selalu acak tiap refreshnya, karena fungsi shuffle() di method create() tadi.. function draw(){ $out = ""; //semua tag HTML nantinya akan dimasukkan ke tag $out ini.. #PERLU DIBEDAKAN, DIBAWAH INI SEMUA VARIABEL $out diberi TITIK SAMA DENGAN. $out.=" <input type='hidden' name='form-captcha' value='1'> <div class='captcha-form'> <div class='big-thumb'> <span class='fa ".$this->iconlist[0]."'></span> <div class='right'> <div class='helper'> Tekan tombol dengan icon yang sama seperti icon disamping untuk mengirim <div class='button-cont'> "; #$THIS->ICONLIST[0] di class big-thumb menunjuk ke icon pertama di list icon yang sudah diacak tadi. #Array dibawah ini akan menampung tag <button>2 yang akan muncul, akan tetapi nantinya diacak urutannya sebelum benar-benar

ditampilkan. $arr = array(); //push data tombol jawabannya array_push($arr," <button name='".$this->token."' class='btn btn-primary btn-lg'> <span class='fa ".$this->iconlist[0]." fa-fw'></span> "); #array_push() pertama sengaja tidak dimasukkan kedalam perulangan dibawah, karena nama button diambil dari atribut $token, bukan dari $tokenlist. Tombol ini nantinya akan menjadi tombol kirim yang sesungguhnya #perulangan dibawah digunakan untuk membuat tombol-tombol sembarang $num = count($this->iconlist); for($i=1;$i<$num;$i++){ array_push($arr," <button name='".$this->tokenlist[$i]."' class='btn btn-primary btn-lg'> <span class='fa ".$this->iconlist[$i]." fa-fw'></span> "); #fungsi shuffle wajib dilakukan, supaya urutan tombol submit sesungguhnya dengan tombol bohongannya selalu acak. shuffle($arr); //dari semua urutan tombol-tombol yang sudah diacak tadi dimasukkan ke variabel $out lagi. foreach($arr as $o){ $out.= $o; $out.= " <div class='clear'> "; //yang diatas ini hanya tag-tag penutup yang sudah dibuka sebelumnya saja.. diatas echo $out; //menampilkan output sesuai yang sudah dibuat

Okee!! Untuk class captchanya sudah selesai semuanya!! Sekarang dari class Captcha tersebut tinggal kita panggil ke dokumen yang ingin kita isi captchanya.. Jadi di form yang ingin kita isikan captcha, cukup kita tambahkan baris ini.. <form action="" method="post" enctype="multipart/form-data"> <!--ANGGEP AJA ADA KOMPONEN FORM LAINNYA DISINI--> kita buat tadi <?php cukup seperti ini saja?> </form> include "captcha.php"; //lokasi class captcha yang $captcha = new Captcha(); $captcha->create(); // untuk menampilkan captcha, Kalau semua urutan dari atas sampai terakhir tadi diikuti dengan benar,, maka hasil jadinya sudah pasti seperti yang diinginkan kayak di halaman demo saya. Dan langkah terakhir yang benar-benar terakhir adalah bagian validasinya.. Perintah validasi berikut ini diletakkan di bagian kita ingin memvalidasi form kita nantinya. Di halaman demo saya, form validasi diletakkan satu halaman dengan index biar nggak ribet.. Tapi bisa disesuaikan dengan kebutuhan kita kedepannya.. <?php session_start(); //KALAU UDAH BUAT DEKLARASI SESSION SEBELUMNYA, BARIS INI BOLEH DIHAPUS //cek if(isset($_post['form-captcha'])){ //nilai variabel bener diambil dari session token jika ada. $bener = isset($_session['token'])? $_SESSION['token'] : ""; //kalau tombol dengan nama sesuai session sudah ada, maka captcha sukses, selain itu gagal. if(isset($_post[$bener])){ echo " <script>

?> else{ alert(\"captcha Benar!!\"); </script> "; echo " <script> alert(\"captcha Salah!!\"); </script> "; Demikian tutorial panjang saya hari ini.. Alangkah baiknya kalau Anda mengerjakan semuanya ini step by step.. Tapi kalau ternyata hasilnya nggak sesuai, atau kebetulan lagi males,, silakan download di sini. Sekian, dan terima kasih.. Tentang Penulis Christian Rosandhy