检查了一下你的代码,应是 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('非法操作'); }
嗯 是的 我去表里看过了 也试了好多次 我也有打印出mysql_fetch_array 有值
就你贴出的代码而言,是不可能出现你说的情况的 因为 _query("UPDATE tg_user SET .... 和 _alert_back('非法操作'); 分属 if (mysql_fetch_array(_query("SELECT tg_active FROM... 的两个分支 不可能同时被执行! 因此,可以认为你实际运行的不是这段代码
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){
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...
的两个分支
不可能同时被执行!
因此,可以认为你实际运行的不是这段代码
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){
echo "ok";
} else {
_alert_back('非法操作');
}
}这样会出现什麽结果?