Ciapa yang tidak kesal dengan spam? Pasti Anda juga. Para spammer bukan hanya menyerang email, tapi juga situs-situs, termasuk Joomla. Nah, kali ini kita akan coba mengimplementasikan ReCapthca di situs Joomla kita. Recaptcha ini sepertinya lumayan ampuh untuk melindungi situs kita dari ulah para spammer.
Recaptcha adalah sebuah sistem antispam gratis. Saya tak perlu menjelaskan panjang lebar tentang ReCaptcha ini, Anda bisa langsung buka di situsnya. http://recaptcha.net/learnmore.html
Â
Langkah pertama, Anda harus mendaftar dulu di recaptcha.net untuk memperoleh Public Key dan Private Key untuk situs Anda. Kemudian Anda download recaptchalib.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
setelah baris:
Â
require_once( $mainframe->getPath( ‘front_html’ ) );
tambahkan baris berikut:
Â
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!! Contoh pemakaian di soppengkab.go.id
