Recaptcha adalah sebuah sistem antispam gratis. Data Oktober 2010 melaporkan terdapat 100 juta captcha dilakukan setiap hari untuk perlindungan pendaftaran situs jejaring sosial seperti facebook, twitter, StumbleUp dan yang lainnya. Saya rasa tak perlu menjelaskan panjang lebar tentang ReCaptcha ini, Anda bisa langsung buka di situsnya. Dan mendaftarnya sekaligus untuk mendapatkan Public Key dan Private Key untuk situs Anda. Jika anda memiliki beberapa domain, cukup mendaftar sekali saja dan pergunakan key yang sama. Cukup centang Enable this key on all domains (global key) pada saat pendaftaran.
Nah, untuk memperoleh manfaat sistem gratisan ini berikut tutorial singkat yang dapat anda manfaatkan di Joomla anda.
Ada dua cara untuk menginstal Recaptcha:
- Cara Otomatis : cukup dengan menginstal komponen.
- Cara manual: dengan mengutak-atik script php.
Berikut penjelasan singkat dari kedua cara di atas:
1. Menggunakan komponen AlphaRegistration
Dengan menginstal komponen ini, form registrasi web anda akan lebih terlihat menarik, elegan dan lebih aman karena menggunakan reCaptcha system dan BotScout service.Selain itu ada pilihan form check box untuk 'terms of use' dengan image display pada setiap langkahnya.
Selain itu anda tidak perlu menginstal modul tambahan, karena AlphaRegistration bekerja otomatis bersama login module bawaan Joomla!
Cara menggunakan:
- Cukup download komponen di sini
- Login ke sistem administrator Joomla anda dan instal komponen seperti menginstal komponen lainnya.
-
Lakukan pengesetan pada konfigurasi komponen. Ada 5 tab yang harus anda konfigurasi yaitu General, steps, recaptcha, AlphaUserPoints dan Security. Jangan lupa pada kolom recaptcha masukan Public Key dan Private Key yang anda peroleh pada saat pendaftaran.
-
Tambah menu baru pada main menu: Menus --- Main Menu* --- New -- AlphaRegistration. Beri nama menu anda sesuai selera misalnya Registrasi atau Pendaftaran.
Lihat hasilnya, jika semua berjalan normal maka form baru pendaftaran akan terlihat seperti contoh pada website ini.
2. Implementasi recaptchalib.php pada Joomla. Sumber: http://www.id-joomla.com/
Langkah pertama, Anda harus mendaftar dulu di recaptcha.net untuk memperoleh Public Key dan Private Key untuk situs Anda. Kemudian Anda download recaptchalib.php (pilih recaptchalib for php).
Agar reusable, kita akan letakkan file ini di folder public_html/includes. Untuk keamanan, file recaptchalib.php harus diedit terlebih dahulu dan ditambah baris pada bagian paling atas
Kemudian buat sebuah class dalam file lain, misalnya recaptcha.php di folder ini juga. Isinya seperti berikut:
Berikutnya kita akan mencoba mengimplementasikan pada Komponen Registrasi Joomla. Jadi kita akan ubah file registration.php dan registration.html.php yang berada di public_html/components/com_registration
Edit registration.php
2. Implementasi recaptchalib.php pada Joomla. Sumber: http://www.id-joomla.com/
Langkah pertama, Anda harus mendaftar dulu di recaptcha.net untuk memperoleh Public Key dan Private Key untuk situs Anda. Kemudian Anda download recaptchalib.php (pilih recaptchalib for php).
Agar reusable, kita akan letakkan file ini di folder public_html/includes. Untuk keamanan, file recaptchalib.php harus diedit terlebih dahulu dan ditambah baris pada bagian paling atas
{defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );}
Kemudian buat sebuah class dalam file lain, misalnya recaptcha.php di folder ini juga. Isinya seperti berikut:
<?php
/** ensure this file is being included by a parent file */
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
require_once( "recaptchalib.php" );
//Ganti key berikut dengan milik Anda
define ( "PUBLIC_KEY", "6LcHVQEAAAAAADXKCk48tWrV0_23dtPn0AR8dvfA" );
define ( "PRIVATE_KEY", "6LcHVQEAAAAAAD3QL5smD53vJ_G_mtwGonjzhZZL" );
class recaptcha {
function recaptcha(){
require_once ("recaptchalib.php");
}
function _setting($theme='red',$lang='en',$tabindex=0){
global $mainframe;
$html = "<script language=\"javascript\" type=\"text/javascript\">\n";
$html .= " var RecaptchaOptions = {theme : '$theme',lang : '$lang',tabindex : $tabindex};\n";
$html .= "</script>\n";
return $mainframe->addCustomHeadTag($html);
}
function get_html($err=null){
return recaptcha_get_html(PUBLIC_KEY,$err);
}
function validate (){
$resp = recaptcha_check_answer (PRIVATE_KEY,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
echo "<script> alert('The reCAPTCHA entered incorrectly. Go back
and try it again. reCAPTCHA said: " . $resp->error . "');
window.history.go(-1); </script>\n";
exit();
}
}
}
?>
Berikutnya kita akan mencoba mengimplementasikan pada Komponen Registrasi Joomla. Jadi kita akan ubah file registration.php dan registration.html.php yang berada di public_html/components/com_registration
Edit registration.php
Ssetelah baris:
require_once( $mainframe->getPath( 'front_html' ) );
tambahkan baris berikut:
Cari function saveRegistration(), tambahkan global $r, sehingga baris
masih dalam fungsi saveRegistration(), panggil fungsi validasi sebelum baris
Pada file ini kita telah menambah 4 baris yaitu:
Edit registration.html.php
Cari fungsi registerForm(),tambahkan global $r; sebelum baris $validate = josSpoofValue();
Terus ke bawah, kita akan menambahkan field validasi recaptcha setelah password2
Selesai sudah. Pada file ini kita hanya menambahkan global $r; dan echo $r->get_html();
Selamat mencoba!!
require_once( 'includes/recaptcha.php' );
$r = new recaptcha();
Cari function saveRegistration(), tambahkan global $r, sehingga baris
global $database, $acl;
menjadi global $database, $acl,$r;
masih dalam fungsi saveRegistration(), panggil fungsi validasi sebelum baris
$row = new mosUser( $database );
sehingga menjadi
$r->validate();
$row = new mosUser( $database );
Pada file ini kita telah menambah 4 baris yaitu:
require_once( 'includes/recaptcha.php' );
$r = new recaptcha();
global $r;
$r->validate();
Edit registration.html.php
Cari fungsi registerForm(),tambahkan global $r; sebelum baris $validate = josSpoofValue();
Terus ke bawah, kita akan menambahkan field validasi recaptcha setelah password2
<tr>
<td>Verification Image *</td>
<td><?php echo $r->get_html();?></td>
</tr>
Selesai sudah. Pada file ini kita hanya menambahkan global $r; dan echo $r->get_html();
Selamat mencoba!!
sumber : agussuwasono.com
0 komentar:
Posting Komentar
Click to see the code!
To insert emoticon you must added at least one space before the code.