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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[BUG] 用户注册问题

[复制链接]
kewinyoyo 发表于 2009-4-27 13:33:07 | 显示全部楼层 |阅读模式
若管理员删除某个用户uid=20,新注册用户会重新拥有这个uid=20,这个新注册用户是无法登陆的,因为在删除用户的时候spacelog里面插入了一条记录,flag=-1的时候表示用户的空间被删除。也就造成新注册用户拥有了被删除用户的id,无法登录。
  1. //判断当前用户是否删除
  2.                 $query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('spacelog')." WHERE uid='$uid' AND flag='-1'");
  3.                 if($value = $_SGLOBAL['db']->fetch_array($query)) {
  4.                         showmessage('the_space_has_been_closed');
  5.                 }
复制代码
玻璃屋女孩 发表于 2009-4-27 17:07:57 | 显示全部楼层
新注册用户的uid会累加,不会覆盖已删除会员的uid
回复

使用道具 举报

 楼主| kewinyoyo 发表于 2009-4-27 20:36:30 | 显示全部楼层
但我在操作过程中确实出现了这个问题
uchome 下的:uc_client\model\user.php
function add_user($username, $password, $email, $uid = 0, $questionid = '', $answer = '') {
                $salt = substr(uniqid(rand()), -6);
                $password = md5(md5($password).$salt);
                $sqladd = $uid ? "uid='".intval($uid)."'," : '';                $sqladd .= $questionid > 0 ? " secques='".$this->quescrypt($questionid, $answer)."'," : " secques='',";
                $this->db->query("INSERT INTO ".UC_DBTABLEPRE."members SET $sqladd username='$username', password='$password', email='$email', regip='".$this->base->onlineip."', regdate='".$this->base->time."', salt='$salt'");
                $uid = $this->db->insert_id();
                $this->db->query("INSERT INTO ".UC_DBTABLEPRE."memberfields SET uid='$uid'");
                return $uid;
        }
没有具体看代码,加粗部分不是已经把uid加进去了吗
回复

使用道具 举报

茄子 发表于 2009-4-28 09:36:18 | 显示全部楼层
如果你的程序是标准的没有改动的话,那就是你的表有问题吧,可能没有auto_increment属性,你可以检查下相应的数据表看看
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 08:19 , Processed in 0.035970 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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