您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 威海分类信息网,免费分类信息发布

关于账户激活的奇葩有关问题

2024/7/18 17:18:07发布52次查看
关于账户激活的奇葩问题,
请教大神我这段代码有什么问题,以前好好的 ,现在却出现莫名问题,编辑器是netbeans,也重新安装过.
现在运行时能执行到第二个_query函数,也就是对数据库的操作成功了,之后就跳过mysql_affected_rows()那段直接执行下面的 else {
_alert_back('非法操作');
}
if (isset($_get['active']) && $_get['action'] === 'ok') {
$_active = _mysql_string($_get['active']);
if (mysql_fetch_array(_query(select tg_active from tg_user where tg_active='$_active' limit 1),mysql_assoc)) {
//将tg_active设置为actived
_query(update tg_user set tg_active='actived' where tg_active='$_active' limit 1);
if (mysql_affected_rows() == 1) {
mysql_close();
_location('账户激活成功','login.php');
} else {
mysql_close();
_location('账户激活失败','register.php');
}
} else {
_alert_back('非法操作');
}
}

------解决思路----------------------
检查了一下你的代码,应是
if (mysql_fetch_array(_query(select tg_active from tg_user where tg_active='$_active' limit 1),mysql_assoc))
此段就发生问题,你确定有执行到_query阶段
if (mysql_fetch_array(_query(select tg_active from tg_user where tg_active='$_active' limit 1),mysql_assoc)) {
//将tg_active设置为actived
_query(update tg_user set tg_active='actived' where tg_active='$_active' limit 1);
if (mysql_affected_rows() == 1) {
mysql_close();
_location('账户激活成功','login.php');
} else {
mysql_close();
_location('账户激活失败','register.php');
}
} else {
_alert_back('非法操作');
}

------解决思路----------------------
就你贴出的代码而言,是不可能出现你说的情况的
因为
_query(update tg_user set ....

_alert_back('非法操作');
分属
if (mysql_fetch_array(_query(select tg_active from... 
的两个分支
不可能同时被执行!
因此,可以认为你实际运行的不是这段代码
威海分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录