欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频