ホームページ >バックエンド開発 >PHPチュートリアル >アカウントのアクティベーションに関する奇妙な質問、
このコードの何が問題なのか教えてください。以前は問題なく動作していましたが、現在は説明のつかない問題が発生しています。エディターは netbeans なので、再インストールしました。
これで、実行時に 2 番目の _query 関数を実行できるようになりました。データベースの操作が成功した場合は、mysql_affected_rows() セクションをスキップして、次の else {
_alert_back('illegaloperation'); を直接実行します。チェックしてください。 コードは
if (mysql_fetch_array(_query("SELECT tg_active FROM tg_user WHERE tg_active='$_active' LIMIT 1"),MYSQL_ASSOC)) になるはずです。
このセクションで問題が発生します。 _query ステージを実行している必要があります
。
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('非法操作'); }}
そうですね、テーブルをチェックして何度も試しましたが、mysql_fetch_array も出力しました
と
_alert_back('不正な操作');
は
if (mysql_fetch_array(_query("SELECT tg_active FROM...
) に属します。 2 つのブランチ
したがって、実際に実行しているのはこのコードではないと考えられます
結果はどうなりますか
あなたが投稿したコードに関する限り、それは不可能ですあなたが発生すると述べた状況の場合
なぜなら
_query(" UPDATE tg_user SET ....
と
_alert_back('illegal Operation');
は
) 2 つのブランチ
を同時に実行することはできません
したがって、実際に実行しているのはこのコードではないと考えられます
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('非法操作'); }
それでもうまくいかない場合は、しばらく探すのをやめてください
両方ともありがとう。