首先到http://code.google.com/intl/zh-TW/apis/recaptcha/docs/php.html,進入其中的reCAPTCHA PHP library,下載recaptcha-php-1.11.zip,然後解壓縮,將其中的recaptchalib.php這個程式上傳複製到你的網站裡(要記住你存放的位置路徑,若要免去麻煩,可以將其拷備在與你以下即將更改的程式之同一個資料夾裡!),
接著在你的joomla 1.5的安裝路徑裡,找到administrator/modules/mod_login裡的mod_login.php這個程式
找到其中表單的部份:
<form action="<?php echo JRoute::_( 'index.php', true, $params->get('usesecure')); ?>" method="post" name="login" id="form-login" style="clear: both;">
<p id="form-login-username">
<label for="modlgn_username"><?php echo JText::_('Username'); ?></label>
<input name="username" id="modlgn_username" type="text" class="inputbox" size="15" />
</p><p id="form-login-password">
.................................................
................................................
................................................
<div class="button_holder">
<div class="button1">
<div class="next">
<a onclick="login.submit();">
<?php echo JText::_( 'Login' ); ?></a></div>
</div>
</div>
<div class="clr"></div>
<input type="submit" style="border: 0; padding: 0; margin: 0; width: 0px; height: 0px;" value="<?php echo JText::_( 'Login' ); ?>" />
<input type="hidden" name="option" value="com_login" />
<input type="hidden" name="task" value="login" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
然後在適當的位置加入以下語法:
<?php
//底下是發哥自己加入的
?>
<div align="center">請於下列欄位中輸入下圖所見之驗證碼</div>
<div align="right"><?php
require_once('recaptchalib.php');
$publickey = "你的公開鑰匙"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
<?php
//以上是哥發自己加入的
?>
註:其中的你的公開鑰匙改為你在google reCAPTCHA註冊申請的帳密所得到的Public Key資料,而recaptchalib.php的路徑則必須視你的上傳複製的實際路徑位置而調整!
如下圖(在sign up點選之後,會有一些設定步驟,這裡我就不說了!)
其中註冊完後,可以看到如下圖頁面的資料,其中主要是會用到Public Key與Private Key的資料!
若一切正確,改完後,你的後台登入畫面應該就會變成這樣:
但此實雖可以看到畫面,卻還不能直正有作用,因為還沒有作確認頁的設定。
接著我們還要找到administrator/components/com_login路徑下的admin.login.php這個程式。
用文字編輯器打開admin.login.php
找到 function login()這一段(約52行的位置)
function login()
{
//
require_once('recaptchalib.php');
$privatekey = "你的私人密鑰";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("你輸入的驗證碼錯誤,請回上一頁再試一次!" .
"(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
}//
global $mainframe;
// Check for request forgeries
JRequest::checkToken('request') or jexit( 'Invalid Token' );$credentials = array();
在其間加入紅色粗體字所標示的字串,其中的你的私人密鑰改為你在google reCAPTCHA註冊申請的帳密所得到的Private Key資料,而recaptchalib.php的路徑則必須視你的上傳複製的實際路徑位置而調整!
這樣子設定完後,你的就可以使用recapthca來保護你的joomla 1.5後台
沒有留言:
張貼留言