Autore : admin
ID articolo : 12
Pubblico : Tutorials
Versione 1.00.01
Data di pubblicazione: 5/6/2011 13:29:59
Letture : 816
Ho voluto inserire il reCaptcha nel modulo Contact v1.71, anche se non viene utilizzato molto, per impedire comunque a sistemi di poter inviare messaggi, utilizzando questo modulo. Come per il modulo Profile, anche questo è molto semplice da modificare e poter utilizzare durante l'invio di messaggi agli amministratori del sito.
In questo modulo esiste solo un file da modificare, esattamente il file index.php nella root del modulo.
Aprire dunque il file index.php e intorno alla riga 178, commentare quanto segue:
mt_srand((double)microtime()*10000);
$random_num = mt_rand(0, 100000);
$security = "<img src='getgfx.php?random_num=$random_num' border='1' alt='"._CT_SECURITY_CODE."' title='"._CT_SECURITY_CODE."'> "
."<img src='images/no-spam.jpg' alt='"._CT_NO_SPAM."' title='"._CT_NO_SPAM."'>";
// show the security block and input field
$security_graphic = new XoopsFormLabel( _CT_SECURITY_CODE, $security );
$contact_form->addElement( $security_graphic );
$type_security = new XoopsFormText( _CT_SECURITY_TYPE, "securityType", 10, 6 );
$contact_form->addElement( $type_security, true );
$security_hidden = new XoopsFormHidden( "securityHidden", $random_num );
$contact_form->addElement( $security_hidden );
subito dopo l'enunciato if.
al di sotto inserire il seguente codice:
$caption= 'Codice di verifica'; $privatekey=''; $publickey='';
include_once $GLOBALS['xoops']->path('/class/recaptcha.php');
$contact_form->addElement( new XoopsFormRecaptcha( $caption, $privatekey, $publickey ) );
passiamo ad un riga successiva e precisamente la 240 e commentiamo questa parte di codice:
$datekey = date("F j");
$rcode = hexdec(md5($_SERVER['HTTP_USER_AGENT'].$securityHidden.$contactclass->getSiteKey().$datekey));
$code = substr($rcode, 2, 6);
inseriamo al di sotto il seguente codice:
/* reCaptcha hack */
include_once $GLOBALS['xoops']->path('/class/recaptcha.php');
$xoopsRecaptcha =& XoopsRecaptcha::getInstance();
$xoopsRecaptcha->getConfig();
if (!$xoopsRecaptcha->doValidate() ) {
$errval |= _CT_ERROR_BADSECVAL
}
salvare e chiudere il file.
Come potete notare dal modulo contact di questo sito, questo hack funziona perfettamente.
Per poter far funzionare questo reCaptcha, è necessario iscriversi su Google reCaptcha per ottenere i codici di sicurezza che dovrete inserire nel file class/recaptcha/config.php.
Il pacchetto si può scaricare da QUI
Leggere le istruzioni riportate nel file leggimi.
Se avete domande, utilizzate il forum di questo sito.
Buon xoops a tutti.
timgno - TXMod Xoops






