最近我的論壇老有注冊機惡意注冊,並且發布廣告信息,搞的很煩,所在想了些辦法來防止惡意注冊。下面是一些方法:
方法1:更改注冊表單NAME(最有效,但是要有一些PHP和MYSQL方面的知識才行。)
改動注冊表單填入內容的NAME,這需要和數據表相配合,MYSQL表單關鍵字也得改。
方法2:輸入網站注冊問題的答案
改兩個文件,一個是register.htm,另一個是register.php
第一步,打開論壇template/wind/下的register.htm,當然,這是默認的風格模板,如果你模板改了,那就到你改動後的模板的名字下找這個文件。
先找個地方,建議放在這個上面:
編輯—查找
<tr class="f_one"><td width="35%"> 用戶名<font color="red">
在這句上面加以下幾句:是出個問題,當然,問題的具體內容可以自己修改
<tr>
<td class="f_one" width="21%">防惡意注冊問題:<br><font color="#000000">你老媽去年49歲,今年幾歲?</font>
</td>
<td class="f_one"><input type="text" name="manianling" size="4" maxlength="4">請把那數字填在左邊空格內</td>
</tr>
保存,上傳到空間替換原文件
第二步:打開論壇主目錄下的register.php
編輯-查找
$db->update("INSERT INTO pw_members (username, password,email,publicmail,groupid,memberid,icon,gender,regdate,signature,introduce,oicq,icq,site,location,bday,receivemail,yz,signchange) VALUES
在這句話的上面添加幾句:是檢測看回答問題的答案是否正確,具體答案自己根據自己的問題指定
if($manianling != 50) {
Showmsg("老媽幾歲都不關心的人,去死吧!!","javascript:history.back()");
}
保存,上傳上傳到空間替換原文件.
方法3:更改register.php的名字
就是改動注冊頁面的文件名,比如說把register.php改成r.php什麼的。但有一點得注意,所有鏈接的register.php的頁面都必須改成r.php,否則會變成白板的喲。
這是沒有辦法的辦法,修改多,影響升級和論壇的當前運行,但是絕對有效
先把register.php改成你自己想要的名字
修改開始:
查register.php換成你改的名字如:welcome.php
login.php
global.php 2處
然後到template/wind(所有的模板只要有下面的文件,都要修改)8處修改!
faq.htm
login.htm
lang_email.php
lang_other.php
register.htm 3處simple_index.htm
simple_read.htm
simple_thread.htm
中查找
register.php
更換為你修改後的register.php名字。比如welcome.php
此方法不需要設置什麼附加信息!
方法4:輸入今日日期
1、修改register.php(register.php就在主目錄下)
找到:
$db->update("INSERT INTO pw_members (username, password, email,publicmail,groupid,memberid,icon,gender,regdate,signature,introduce,oicq,icq,site,location,bday,receivemail,yz,signchange) VALUES
上面加上(中文自己修改):
if($nowday != $nowday1) {
Showmsg("日期沒輸正確.你不會忘了今天是幾號了吧?","javascript:history.back()");
}
找到:
@include_once(D_P.data/bbscache/inv_config.php);
下面加上:
$nowday1 = gmdate("d", $timestamp + $timeoffset * 3600);
$nowday2 = gmdate("m月d日", $timestamp + $timeoffset * 3600);
2、修改register.htm(register.htm就在目錄/template/wind/register.htm或其它風格目錄)
找到:
<tr><td colspan="2" class="head" height="25">必填信息</td></tr>
下面添加(中文自己修改):
<tr>
<td class="f_one" width="21%">防惡意注冊問題:今天的日期是幾號?<br><font color="blue"> 如果今天日
期是12月04日就填04 </font>
</td>
<td class="f_one"><input type="text" name="nowday" size="4" maxlength="4"> 提示:請填入<font
color="#FF0000">$nowday1</font> 快把它輸入到左邊文本框吧(忽略凌晨時差問題)</td>
</tr>
友情提醒:請刪除以前機器人注冊的id,有好多機器人都是以前注冊了不發帖,然後到規定日期狂發的,如果發現類似的ID,如利劍*等,請刪除吧,留著就是隱患。
方法5:後台添加防自動注冊機驗證碼
1. 打開template/admin/settings.htm
查找
<tr class=b>
<td>注冊時初始{$db_moneyname}:(建議設置為0.)</td>
<td><input size=35 name="reg[regmoney]" value="$rg_regmoney"></td>
</tr>
在後面添加
<tr class=b>
<td><font color=red>防自動注冊機驗證碼:</font>例如“phpwinnd”(設置為空,則代表關閉)</td>(特別說明:修改完成後一定要到後台設置好您自己想要的驗證碼,留空則不啟用這個功能)
<td><input size=35 name="reg[autoreg]" value="$rg_autoreg"></td>
</tr>
2. 打開admin/settings.php
查找
if ($reg[regmaxname]>15){
adminmsg(illegal_username);
}
在後面添加
$reg[autoreg]=str_replace(" ","",trim($reg[autoreg]));
3. 打開template/wind/register.htm
查找
<tr> <td class=f_one> 確認密碼<font color=red>*</font></td>
<td class=f_one>
<input type=password size=20 maxlength=75 name=regpwdrepeat></td></tr>
在後面添加
<!--
EOT;
if($rg_autoreg!=""){
print <<<EOT
-->
<tr> <td class=f_one> 防自動注冊機驗證碼<font color=red>*</font> <font
color=red><b>$rg_autoreg</b></font></td>
<td class=f_one>
<input type=text size=20 maxlength=75 name=autoreg></td></tr>
<!--
EOT;
}
print <<<EOT
-->
4. 打開register.php文件
查找
if(!$rg_rglower){
for ($asc=65;$asc<=90;$asc++){
if (strpos($regname,chr($asc))!==false){
Showmsg(username_limit);
}
}
}
在後面添加
if($rg_autoreg!="" && $autoreg!=$rg_autoreg){
showmsg(對不起,防自動注冊機驗證未通過!);
}
完成
希望對大家有些幫助。