1 頁 (共 1 頁)

對付機器人BOT新招,加上 checkbox

發表於 : 2006-09-14 , 15:06
懸壺子
對付機器人BOT新招,加上 checkbox

圖檔

這可是爬了兩三天文,又自己看別人做的,
自己擷取某一段 ss:
機器人BOT再來挑戰吧 to1:

Re: 對付機器人BOT新招,加上 checkbox

發表於 : 2006-09-14 , 15:09
懸壺子
http://blog.teatime.com.tw/post/1/49

修改 language/lang_chinese_traditional_taiwan/lang_main.php, 加上

代碼: 選擇全部

$lang['ANTISPAM_Check'] = '在註冊時請選擇此欄位';
$lang['ANTISPAM_Check_Error'] = '[在註冊時請選擇此欄位] 這個欄位未選擇'; 
修改 includes/usercp_register.php, 找到下頭的內容

代碼: 選擇全部

$passwd_sql = ''; 
在前頭加上

代碼: 選擇全部

if ($mode == 'register') {
        $x_hcode_date = $HTTP_POST_VARS['date'];
        $hcode = $HTTP_POST_VARS[md5($x_hcode_date . ANTISPAM)];
        $hcode_old = md5($x_hcode_date);
        if (!isset($hcode) || empty($hcode) || $hcode != $hcode_old) {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['ANTISPAM_Error'];
        }
        if ( !isset($HTTP_POST_VARS['antispam_'.$hcode]) ) {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['ANTISPAM_Check_Error'];
        }
}



找到下頭的內容

代碼: 選擇全部

$template->assign_vars(array( 
在前頭加上

代碼: 選擇全部

$hcode_date = gmdate('U'); 
找到下頭的內容

代碼: 選擇全部

'CONFIRM_IMG' => $confirm_image, 
在後頭加上

代碼: 選擇全部

'HCODE' => md5($hcode_date),
'HCODENAME' => md5($hcode_date . ANTISPAM),
'DATE' => $hcode_date,
'L_ANTISPAM_CHECK' => $lang['ANTISPAM_Check'], 

修改 templates/subSilver/profile_add_body.tpl, 找到下頭的內容

代碼: 選擇全部

<!-- Visual Confirmation --> 
在前頭加上

代碼: 選擇全部

<input type="hidden" name="{HCODENAME}" value="{HCODE}" />
<input type="hidden" name="date" value="{DATE}" />
<tr>
  <td class="row1"><span class="gen">{L_ANTISPAM_CHECK}: * </span></td>
  <td class="row2"><input type="checkbox" name="antispam_{HCODE}" /></td>
</tr>  

經過這樣的修改後, 註冊時也可以使用同樣的方式來防止 bot 執行.

Re: 對付機器人BOT新招,加上 checkbox

發表於 : 2006-09-14 , 15:11
懸壺子
4風格皆完成