关于账户激活的奇葩问题,
请教大神我这段代码有什么问题,以前好好的 ,现在却出现莫名问题,编辑器是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...
的两个分支
不可能同时被执行!
因此,可以认为你实际运行的不是这段代码