recaptchaSiapa 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. 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:
  1. Cara Otomatis : cukup dengan menginstal komponen.
  2. 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:
  1. Cukup download komponen di sini
  2. Login ke sistem administrator Joomla anda dan instal komponen seperti menginstal komponen lainnya.
  3. 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.
  4. Tambah menu baru pada main menu: Menus --- Main Menu* --- New -- AlphaRegistration. Beri nama menu anda sesuai selera misalnya Registrasi atau Pendaftaran.
alpharegistration
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

{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:

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

 
Top