Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] 增强型验证码——注册让会员指定验证码 For 4.1

[复制链接]
sw08 发表于 2006-5-13 11:48:14 | 显示全部楼层 |阅读模式
这个功能虽然也是验证码,不过比起以前的传统验证码功能强大了很多。先说说它的特点~希望大家能喜欢.

特点:
1、支持数字、英文、中文等等的字符混合组成验证码,只要你的数据库支持这些字符什么都可以做到。避免了纯数字纯英文纯中文带来的弊端。
2、每一个注册会员除了要输入自己应该输入的验证码,还要同时给下一个想注册的人设置。可以做到更强大的随机性,因为程序验证码是有固定算法的,但是如果让人去指定验证码,那样会增加破解的难度。可以更强的防止机器人注册。
3、带有后台控制开关和初始验证码设置,想用就用。


说明:
1、更新验证码时候会有缓存更新,可能会出现提示。只要刷新即可,管理员需要在注册协议中说明该点。
2、原始验证码和设置验证码不能一致。
3、请注意你的数据库版本,中文功能仅仅只能用在GBK字符集的数据库上。否则会乱码




升级数据库(我初始设置的是1234):
  1. INSERT INTO `cdb_settings` (`variable`, `value`) VALUES ('setcode1', '1234');
  2. INSERT INTO `cdb_settings` (`variable`, `value`) VALUES ('setcode2', '0');
复制代码


打开admincp.lang.php
找到:
  1. 'settings_regstatus_comment' => '选择“否”将禁止游客注册成为会员,但不影响过去已注册的会员的使用',
复制代码


在下面加:
  1. 'settings_code1' =>'设置初始验证码',
  2. 'settings_code1_comment' =>'设置给第一个注册会员的验证码,一经设置请不要随便修改,避免意外错误',
  3. 'settings_code2' =>'启用指定验证码',
  4. 'settings_code2_comment' =>'启用指定验证码功能,启用该功能后,每一位注册的会员都需要为下一个人设置验证码,能有效加强防止机器人在论坛注册',  
复制代码


打开admin\settings.inc.php:
找到:
  1. showsetting('settings_regstatus', 'settingsnew[regstatus]', $settings['regstatus'], 'radio');
复制代码


在下面加上:
  1. showsetting('settings_code2', 'settingsnew[setcode2]', $settings['setcode2'], 'radio');
  2. showsetting('settings_code1', 'settingsnew[setcode1]', $settings['setcode1'], 'text');
复制代码


找到:
  1. $checkfastpost = array($settings['fastpost'] => 'checked');
复制代码


在后面加上:
  1. $checksetcode2 = array($settings['setcode2'] => 'checked');
复制代码


打开register.htm
找到:
  1.         <tr>
  2.         <td class="altbg1" width="21%">{lang username}:</td>
  3.         <td class="altbg2"><input type="text" name="username" size="25" maxlength="25">
  4.         <input type="button" value="{lang register_check_username}" onclick="window.open('member.php?action=check&username='+this.form.username.value);">
  5.         </td>
  6.         </tr>
复制代码


在上面加:
  1.         <!--{if $setcode2 == 1}-->
  2. <tr>
  3. <td class="altbg1" width="21%">输入验证码:</td>
  4. <td class="altbg2"><input type="text" name="inputcode1" size="20" maxlength="50"><span class="smalltxt"> 请先更新验证码,然后输入后面括号里的红色验证字符 (<font color="#ff0000">$setcode1</font>)</span><input type="button" value="更新验证码" onclick="window.open('member.php?action=updatecode');"></td>
  5. </tr>
  6. <tr>
  7. <td class="altbg1" width="21%">设置验证码:</td>
  8. <td class="altbg2"><input type="text" name="inputcode2" size="20" maxlength="50"><span class="smalltxt"> 请你为下一个注册的人设置验证码,可以是数字、文字、字母等等结合(不超过50字节)</span></td>
  9. </tr>
  10. <!--{/if}-->
复制代码


打开register.php
找到:
  1.         if(strlen($username) > 15) {
  2.                 showmessage('profile_username_toolang');
  3.         }
复制代码


在上面加:
  1.         if($setcode2 == 1) {
  2.         if($inputcode1 != $setcode1){
  3.                 showmessage('对不起,验证码输入错误或为空,请返回修改');
  4.         }
  5.         if($inputcode2 == '' || $inputcode1 == $inputcode2){
  6.                 showmessage('你设置的验证码为空或与上次的验证码相同,请返回修改');
  7.         }
  8. }
复制代码


找到:
  1. $authstr = $regverify == 1 ? "$timestamp\t2\t$idstring" : '';
复制代码


在下面加:
  1.   if($setcode2 == 1) {
  2. $db->query("UPDATE {$tablepre}settings SET `value` = '$inputcode2' WHERE CONVERT( `variable` USING utf8 ) = 'setcode1' LIMIT 1");
  3. }
复制代码


打开member.php
找到:
  1. elseif($action == 'markread') {
复制代码


在前面加:
  1. elseif($action == 'updatecode') {
  2.    @unlink(DISCUZ_ROOT.'./forumdata/cache/cache_settings.php');
  3.    showmessage('验证码更新读取完毕,请返回刚才的页面。','register.php');
  4. }
复制代码

[ 本帖最后由 sw08 于 2006-5-13 11:49 编辑 ]
haohao036 发表于 2006-5-13 11:51:41 | 显示全部楼层
up 第一位是我的
回复

使用道具 举报

amoshuang 发表于 2006-5-13 11:53:33 | 显示全部楼层
占位
回复

使用道具 举报

killua_bo 发表于 2006-5-13 11:56:58 | 显示全部楼层
支持啊!
回复

使用道具 举报

amoshuang 发表于 2006-5-13 11:57:17 | 显示全部楼层
这个好,垃圾注册没办法了

这个能不能用在发贴限制上,针对部分用户组的发贴限制

比如,初级会员组,必须输入发贴验证码
回复

使用道具 举报

zl811024 发表于 2006-5-13 12:00:09 | 显示全部楼层
支持啊~!!前排
~!!!
回复

使用道具 举报

shenstef 发表于 2006-5-13 12:01:18 | 显示全部楼层
纯支持   
友情演出
回复

使用道具 举报

 楼主| sw08 发表于 2006-5-13 12:02:58 | 显示全部楼层

回复 #5 amoshuang 的帖子

我认为发帖的加这个会让一些步骤变的十分繁琐。
回复

使用道具 举报

孤情一刀 发表于 2006-5-13 12:08:06 | 显示全部楼层
回复

使用道具 举报

cust 发表于 2006-5-13 12:16:24 | 显示全部楼层
支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-5-18 14:20 , Processed in 0.100489 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表