Heim > Backend-Entwicklung > PHP-Tutorial > 关于账户激活的奇葩有关问题

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

WBOY
Freigeben: 2016-06-13 12:13:18
Original
1240 Leute haben es durchsucht

关于账户激活的奇葩问题,
请教大神我这段代码有什么问题,以前好好的 ,现在却出现莫名问题,编辑器是netbeans,也重新安装过.
现在运行时能执行到第二个_query函数,也就是对数据库的操作成功了,之后就跳过mysql_affected_rows()那段直接执行下面的 else {
_alert_back('非法操作');
}

<br />if (isset($_GET['active']) && $_GET['action'] === 'ok') {<br /><br />	$_active = _mysql_string($_GET['active']);<br /><br />  	if (mysql_fetch_array(_query("SELECT tg_active FROM tg_user WHERE tg_active='$_active' LIMIT 1"),MYSQL_ASSOC)) {<br /><br />         //将tg_active设置为actived<br />		_query("UPDATE tg_user SET tg_active='actived' WHERE tg_active='$_active' LIMIT 1");<br /><br />		if (mysql_affected_rows() == 1) {<br /><br />			mysql_close();<br /><br />			_location('账户激活成功','login.php');<br /><br />		} else {<br /><br />			mysql_close();<br /><br />			_location('账户激活失败','register.php');<br />		}<br />	} else {<br /><br />		_alert_back('非法操作');<br />	}<br />}<br />
Nach dem Login kopieren


------解决思路----------------------
检查了一下你的代码,应是
if (mysql_fetch_array(_query("SELECT tg_active FROM tg_user WHERE tg_active='$_active' LIMIT 1"),MYSQL_ASSOC))
此段就发生问题,你确定有执行到_query阶段

<br />if (mysql_fetch_array(_query("SELECT tg_active FROM tg_user WHERE tg_active='$_active' LIMIT 1"),MYSQL_ASSOC)) {<br /> <br />         //将tg_active设置为actived<br />        _query("UPDATE tg_user SET tg_active='actived' WHERE tg_active='$_active' LIMIT 1");<br /> <br />        if (mysql_affected_rows() == 1) {<br /> <br />            mysql_close();<br /> <br />            _location('账户激活成功','login.php');<br /> <br />        } else {<br /> <br />            mysql_close();<br /> <br />            _location('账户激活失败','register.php');<br />        }<br />    } else {<br /> <br />        _alert_back('非法操作');<br />    }<br />
Nach dem Login kopieren

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

_alert_back('非法操作');
分属
if (mysql_fetch_array(_query("SELECT tg_active FROM... 
的两个分支
不可能同时被执行!
因此,可以认为你实际运行的不是这段代码

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage