ホームページ >バックエンド開発 >PHPチュートリアル >初心者の Xiaobai がセッションの問題についてアドバイスを求める
実装したい機能は、ユーザーが繰り返しログインするのを防ぐことです。私には、専門家が理解できる方法のみを使用します。ログインページ
このような書き方の問題は、session_start() を使用せずに $_SESSION["username"] を使用することが原因のようです?
if(!$username){ $aa= '账号不存在'; }else if($password != $bb){ $aa= '密码错误'; }else if(!empty($_SESSION["username"])){ $aa= '该账号已登录'; }else{ session_start(); $_SESSION["md5"] = md5($time); $_SESSION["username"] = $account; DB::query("UPDATE ".DB::table('abc')." set a='$time' , b=' {$_SESSION["username"]}' , md5='{$_SESSION['md5']}' where name='$account'"); $aa= '成功登陆'; }}else if(!empty($_SESSION) ["username"])); これで改善されますが、他に問題がある場合は、
session_start(); $md5 = $_SESSION["md5"]; $username = $_SESSION["username"]; $aa= DB::get_one("SELECT * FROM ".DB::table('abc')." WHERE b='$username' and md5='$md5'"); if(!$aa){ session_destroy(); echo "<script>alert('你掉线了');</script>"; echo "<script language='javascript' type='text/javascript'>" ; echo "window.location.href = 'index.php';" ; echo "</script>" ; exit () ; }}問題どのようにログインしても、「切断されました」というプロンプトが表示されます。キャッシュをすぐにクリアする場合も同様です!
ディスカッションに返信 (解決策)
ログイン ページは、入力されたユーザー名とパスワードを取得します。データが正しいかどうかを確認し、正しい場合はセッションを書き込み、ログイン後のページにジャンプします
ログイン後のページでは、ユーザーのセッション データがあるかどうかを判断するだけで済みます。ない場合は、ログインページにジャンプしてログインを求めます