〔連絡我們〕加上圖型驗證碼

(1 次投票)

最近 joomla123 常遭國外的留言機械人攻擊,本來是不以為意.但沒想到今天卻一口氣留了快 40 封信(英文),真是氣死我了.所以上網找了些資料,幫〔連絡我們〕加上圖型驗證碼(CAPTCHA).

安裝圖型驗証模組:

1.請下載 CAPTCHA 程式,這裡是簡易版(48k)及標準版(164k),我是用簡易版

2.將 CAPTCHA 解壓縮後,裡面會有個 kcaptcha 的資料夾,把整個資料夾放在jooomla 的根目錄下

3.測試一下,打入 http://站名/kcaptcha/ ,應該會看到圖型驗証碼出現,表示安裝成功 (例如:http://www.joomla123.com.tw/kcaptcha/ )


接下來要修改二個檔案:

1.打開joomla根目錄中之 /components/com_contact/contact.html.php ,第690~694行應為:

   <?php echo(_EMAIL_A_COPY); ?>
  </label>
 <?php
}
?>

在這之後,請插入下面程式碼(只插入紅色字部份):

<!—開始增加圖型驗証碼 -->
<?php session_start(); ?><br />
<img src="/kcaptcha/index.php?<?php echo session_name()?>=<?php echo session_id()?>"
 alt="Turn on pictures showing" />
<br />
<label for="contact_captcha">
請輸入驗證碼:
</label>
<br />
<input type="text" name="captcha" id="contact_captcha" value=""
 size="30" maxlength="10" />
<!—結束 -->

<br />
<br />

由於中間我們有插入中文,所以存檔時要存為UTF 8的格式(用 PSPad 編輯器就有這個功能,於功能表中選〔格式/UTF 8〕,可按此下載),整段看起來應為(包含前後)


2.請打開joomla根目錄中之/components/com_contact/contact.php ,在382行附近找到


$bannedText  = $mparams->get( 'bannedText',  '' );
$sessionCheck  = $mparams->get( 'sessionCheck', 1 );
 
請在之後插入下面程式碼(紅字部份)

// 插入圖型驗証碼
session_start();
if(!isset($_SESSION['captcha_keystring']) ||
   $_SESSION['captcha_keystring']!==$_POST['captcha']){
 unset($_SESSION['captcha_keystring']);
 mosErrorAlert('請輸入正確的驗證碼');
}
unset($_SESSION['captcha_keystring']);
// 結束
 
// check for session cookie
if  ( $sessionCheck ) {

記得,還是要用UTF 8的格式存檔.

這樣,我們就手動的為〔連絡我們〕的功能加上圖型驗証碼囉!也比較不怕垃圾信的功擊了.

範例效果如下:

image00103.jpg

註:本方法只適用 joomla 1.0.X 版

參考資料:http://physicist.phpnet.us/2007/07/06/captcha-contact-form/


建立0rz短址
Related Posts with Thumbnails

文章回應

avatar sonyyuan
+2
 
 
福哥:請問驗証碼介紹支援1.0.X版,那15.18版是否也有支援.假如沒有支援,那還有什麼方法加入驗証碼?
請登入後回應