Home Tutorial Implementasi ReCapthca di Joomla
zachguffron
E-mail
Implementasi ReCapthca di Joomla
Tutorial
Zach Guffron, Friday, 04 April 2008 15:50

Recaptcha

C
iapa 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

 

 

Comments
Search
sip deh
myhello 2008-04-09 12:30:03

wah tambah lagi nih ilmunya..

mas soppengkab.go.id itu mas yang buat ya
??

mo nanya nih mas

Berita terkini sama Obyek wisata pake modul apa mas ??
Makasih Makasih
primaga 2008-04-09 14:00:23

Terimakasih Info nya.. Kasih Info Info KLagi Dung.. he he he he
thx
miyabi fans club 2008-04-10 06:41:06

:grin thx ilmunya... di coba dulu aaaah....
berhasil!
zamdesign 2008-04-11 19:58:25

langsung tak coba
agak kurnag ngerti bagian global$
tapi tak coba2 ajah
dan
ternyata berhasil

trims
Global $r
zachguffron 2008-04-12 08:00:09

Global $r maksudnya supaya kita dapat mengakses property dan methode dari object
yang telah dibuat sebelumnya, yaitu $r = new Recaptcha(). Karena di luar scope,
kita harus menambah baris global $r, bisa juga ditambahkan pada baris yang
telah ada, tinggal tambah koma trus $r. Untuk merubah default theme('red')
misalnya white, panggil methode $r->_setting('white'); setelah membuat object.
Nilai lain blackglass dan clean
Bagus
doy 2008-04-13 19:29:04

terimakasih infonya boss :grin
mending make security image
grogja 2008-04-17 06:53:37

mendingan make security image dari walter cedric, gampang banget, kaga usah otak
atik file lagi... mak nyus!
thx, berhasil juga akhirnya
masygul 2008-04-22 05:56:49

wah bagus nih, dicoba n hasil
bisa ga ya klo u/ bagian comment
ato sm gak
perintahnya u/ componen/modul lain?
trim's bgt ah...
Reusable Library
zachguffron 2008-04-22 09:30:09

Ya itu dia, makanya library ditaruh di root/includes supaya reusable, jadi
komponen lain yang membutuhkan bisa menggunakan lib ini. Cara manggilnya saya
kira sama dengan contoh yg dah ada, cuma perlu di cari di mana diletakkan
codenya. Saya blom coba utk yg lain sih, boleh tuh dicoba misal untuk guestbook
dll yg ada formnya. Klo berhasil bagi-2 ya di sini....
com dan mod recaptcha
kepedihan 2008-06-06 16:53:04

saya sudah coba memakai cara tersebut dan berhasil. namun setelah saya
jalan2 sebentar akhirnya menemukan cara yang lebih praktis dan instan.
mungkin ini bisa membantu bagi yang merasa kesulitan dalam mengedit
scripts.

silahkan klik disini
klu captcha pada contac us
gratak.patria 2008-07-08 18:38:53

mas bagus tuh artikel nya...
klu bikin captcha di kontak us gmn?
saya masih
bingung...
maklum saya masih pemula
atas informasinya saya ucapkan terima
kasih :cry
captcha - securityimages
kepedihan 2008-07-12 21:13:15

kalo pake contact us default nya joomla baca ini aja
Only registered users can write comments!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Last Updated on Monday, 14 April 2008 00:03  

JUG Indonesia

Id-joomla.com adalah situs resmi Joomla User Group (JUG) Indonesia dan Joomla Translation Team

Download Terjemahan Joomla terakreditasi dari JoomlaCode dan laporkan bugs, ide dan saran nya di Sub Forum Hanacaraka

Login

Web
ID-Joomla
Banner
Banner
Dengarkan siaran radio ID-Joomla   Chatroom ID-Joomla   Facebook Page ID-Joomla
We have 1375 guests and 1 member online
Joomla! is the trademark of Open Source Matters, Inc in the United States and other countries. The Joomla! name is used under a limited license granted by Open Source Matters.
Id-joomla.com is not affiliated with or endorsed by Open Source Matters or the Joomla! Project