日志文章


2005-07-28

在论坛多个页面采用验证码功能,或许能有效防止灌水机器和PM广告王

本人在http://www.sms55.cn/reg.htmwww.cnyou.cn/[/url]这里下了个"发帖之神II"来本地测试了一下   好象没用(也许是我不会用,搞破坏的事真做不来) 所以测试也无法进行



我这个功能主要是在发贴页面和发短消息页面 添加验证码功能(首先必须你的服务器支持GD库



好了  



下面开始修改



发贴页:



打开 require/postnew.php



找到          

Quote:
$atc_content = html_check($atc_content);




下面添加



       
Quote:
//发贴附验证码开始

if(function_exists('imagecreate') && $db_lgck && (!$lg_num || md5($lg_num) != $ck_num)){

        Showmsg('check_error');

    }

    //发贴附验证码结束




打开模板文件post.htm



找到



Quote:
<!--

EOT;

include_once(R_P.'data/bbscache/postcache.php');

foreach($face as $key=>$facedb){

print <<<EOT

-->    

<a href="javascript:addsmile('')"><img src="$imgpath/post/smile/$facedb"></a>

<!--

EOT;

}print <<<EOT

-->

<td></tr>

<tr><td>




下面添加



Quote:
<!--

EOT;

if(function_exists('imagecreate') && $db_lgck){print <<<EOT

-->

<input type='text' maxLength=4 name='lg_num' size=10> <img src="ck.php" align=absmiddle> <font color=red>请将图片中的数字或英文字母填入左框中</font>

<!--

EOT;

}print <<<EOT

-->






下面是发短消息页面



打开 message.php



找到





Quote:
Cookie('lastwrite',$timestamp);




在它的上面添加



Quote:
//发消息附验证码开始

        if(function_exists('imagecreate') && $db_lgck && (!$lg_num || md5($lg_num) != $ck_num)){

        Showmsg('check_error');

    }

    //发消息附验证码结束




打开模板文件 message.htm



找到



Quote:
</td><td><input type='checkbox' name='ifsave' value='Y'>保存到发件箱中





修改为



Quote:


</td>

<td>

<!--

EOT;

if(function_exists('imagecreate') && $db_lgck){print <<<EOT

-->

<input type='text' maxLength=4 name='lg_num' size=10> <img src="ck.php" align=absmiddle> <font color=red>发消息必须输入验证码</font>

<!--

EOT;

}print <<<EOT

-->

<br><input type='checkbox' name='ifsave' value='Y'>保存到发件箱中

</td></tr></table>





好了



本地测试通过



附: 此功能可以应用到更多页面 ,但是提醒各位站长不要应用过多,否则影响论坛人气

因测试"发帖之神II"不成功暂时还不知道发贴机器是否能自动识别发贴页的的验证码



以及发短消息的验证码 所以我也不敢保证用上此功能后能杜绝灌水机器的骚扰 有待时间考证



如果有站长朋友知道更多消息的请告知本人 谢谢先


类别: 无分类 |  评论(0) |  浏览(4540) |  收藏