ログイン ページとして PHP を使用し、データベース内のデータと照合します。入力されたユーザー名またはパスワードが一致しない場合は、「ユーザー名またはパスワードが間違っています」というエラー メッセージが表示されます。次のようなステートメントを使用します。ヘッダー ("Location:login.php ?errno=1") を使用し、$_GET を使用して、login.php ページで errno を受信すると、login.php ページに「ユーザー名またはパスワードが間違っています」というメッセージが正常に表示されます。しかし、この時点でページを更新すると、このメッセージは更新されません。更新時に「ユーザー名またはパスワードが間違っています」という文を消す方法はありますか?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title> login </title> </head> <body><?php $errno = isset($_GET['errno'])? $_GET['errno'] : ''; if($errno==1){ echo '<script type="text/javascript">'; echo 'alert("用户名或密码不正确");'; echo 'window.location = "login.php";'; echo '</script>'; }?> <p>用户名:<input type="text" name="username"></p> <p>密码:<input type="password" name="password"></p> <p><input type="submit" value="登入"></p> </body></html>
現在の方法だと、更新するたびにerrnoが持ち込まれ、PHPファイルの論理処理で必然的にこの情報が出てきます。
通常はパラメータメソッドではなくセッションメソッドを使用します。このように、php ファイルにセッションが存在するかどうかを最初に確認すると便利です。存在する場合は、エラー メッセージが表示され、セッションが削除されます。