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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Email获取注册码插件加入原先已注册的邮箱判断

[复制链接]
ni88yy 发表于 2009-8-23 12:52:23 | 显示全部楼层 |阅读模式
UCHome模板
适用版本: UCHome 2.0
语言编码:  
风格转换者:
本帖最后由 ni88yy 于 2009-8-23 20:13 编辑

今天安装了 54alin 的Email获取注册码插件 的确不错的好插件 感谢54alin免费提供给大家。
原贴地址https://discuz.dismall.com/thread-1242212-1-2.html
但觉得这个插件还有一个不足的地方。。在判断邮箱是否已经注册了,这点还欠缺。从这个插件的程序看,只判断在新增加的数据表里是否有已激活的邮箱地址,在这个插件安装以前已经注册了的邮箱不能直接判断,可能作者把这个判断给UCH自身的邮箱地址验证判断,这样的话我可能会出现用户在取得注册码后还提示改邮箱地址有使用。

所以我简单的修改了下检索数据语句,和判断语句,解决该问题。


把regcode.php里的

//检查email是否已经使用过
$query  = $_SGLOBAL['db']->query("SELECT * FROM ".tname("regcode")." where email='".$_POST['email']."'");
$rs  = $_SGLOBAL['db']->fetch_array( $query );
if($rs['checkcode']==1){showmessage('您输入的Email邮箱已经被使用了,请返回重试!');}
//检查发送时间间隔
        $posttime        =        $_SGLOBAL['timestamp']-3600;
        if($rs['checkcode']==0 & $_SGLOBAL['timestamp']>$rs[dateline]+3600){
$_SGLOBAL['db']->query("DELETE FROM ".tname('regcode')." WHERE (email='".$_POST['email']."' AND checkcode = 0)");
        }
        if($rs[dateline]>$posttime){showmessage('重新获取注册码需要间隔1个小时哦!');}


修改成下面红色的

//检查email是否已经使用过
$query  = $_SGLOBAL['db']->query("SELECT p.email,a.email FROM ".tname("regcode")." p,".tname('spacefield')." a where p.email='".$_POST['email']."' AND p.checkcode=1 OR a.email='".$_POST['email']."'");
    while ($result=$_SGLOBAL['db']->fetch_array( $query )) {

if(!mysql_num_rows($result))
  {showmessage('您输入的Email邮箱已经被使用了,请返回重试!');}

//检查发送时间间隔
  $sql = $_SGLOBAL['db']->query("SELECT * FROM ".tname("regcode")." where email='".$_POST['email']."'");
  $rs  = $_SGLOBAL['db']->fetch_array($sql);


$posttime = $_SGLOBAL['timestamp']-3600;

if($rs['checkcode']==0 & $_SGLOBAL['timestamp']>$rs[dateline]+3600){
$_SGLOBAL['db']->query("DELETE FROM ".tname('regcode')." WHERE (email='".$_POST['email']."' AND checkcode = 0)");
}
if($rs[dateline]>$posttime){showmessage('重新获取注册码需要间隔1个小时哦!');}


没什么技术含量,请大家不要拍砖。
shwxwl 发表于 2009-8-23 14:38:10 | 显示全部楼层
沙发。学习了
回复

使用道具 举报

richenlin 发表于 2009-8-23 14:52:44 | 显示全部楼层
谢谢分享
回复

使用道具 举报

wyxgyx 发表于 2009-8-23 14:52:47 | 显示全部楼层
厉害 顶上
回复

使用道具 举报

feebird 发表于 2009-8-23 18:00:16 | 显示全部楼层
留帖。。。。。。。。。。。。。。。。。。收藏。。。。。。。
回复

使用道具 举报

a2949 发表于 2009-8-23 18:53:14 | 显示全部楼层
刚想要得到这个,谢谢楼主的无私分享。
回复

使用道具 举报

a2949 发表于 2009-8-23 19:05:16 | 显示全部楼层
为啥我换了代码就出错了
回复

使用道具 举报

a2949 发表于 2009-8-23 19:05:50 | 显示全部楼层
我的是1.5版本的
//检查email是否已经使用过
$query  = $_SGLOBAL['db']->query("SELECT * FROM ".tname("regcode")." where email='".$_POST['email']."'");
$rs  = $_SGLOBAL['db']->fetch_array( $query );
if($rs['checkcode']==1){showmessage('您输入的Email邮箱已经被使用了,请返回重试!');}
回复

使用道具 举报

 楼主| ni88yy 发表于 2009-8-23 20:15:08 | 显示全部楼层
8# a2949
我的可以诶。报什么错吗?
回复

使用道具 举报

54alin 发表于 2009-8-23 21:40:50 | 显示全部楼层
呵呵,谢谢LZ的补充!这个插件主要是防止恶意注册和注册机!以前注册的,我没纳入进来!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 00:31 , Processed in 0.027865 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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