0

たとえば、PHP を実行したときにパスワード/ユーザー名が一致しない場合、すべて HTML/JS であるメインのログイン ページに戻りたいとします。メインのログイン HTML ページにアクセスして、エラー メッセージを含む div を表示できるようにしたいと考えています。

この例に役立つコード スニペットを次に示します。すべてが正常に動作しますが、何が問題なのかをユーザーに通知せずにインデックス ページをロードすることしかできないのが好きではありません。私はいくつかのグーグルを行ってきましたが、それを正しくすることができませんでした。

<?php //this is in a separate file "checklogin.php"
. 
. 
.

    if ($count == 1) {
            session_start();
            $_SESSION['loggedin'] = true;
            header('Location: loggedin.php');
        }
         else {
            header('Location: index.php');
        }   
.
.
.
?>



<html> //separate file "index.php"
    <body>
    .
    .
    .

       <div id = "nomatch" name = "nomatch" style = "display:none">
         <p>
           username and password don't match
         </p>
       </div>
    .
    .
    .
    </body>
 </html>
4

3 に答える 3

1

ページを呼び出すときに URL 変数をindex.htmlaに置き換えて渡します。つまり、次のようになります。index.phpindex.php

index.php :

<?php if(isset($_GET['errors'])) {
    $errors = $_GET['errors'];
?>

<html>
    // some html tags
    <?php if($errors): ?>
        <div> your div error </div>
    <?php endif; ?>
</html>

そのファイルを次のように呼び出します。header('Location: index.php?error="what you want"');

于 2013-08-19T23:46:34.260 に答える
1

これを行うには、約 1000 の異なる方法があります。それはすべて、ログインフォームの処理方法によって異なります。これを行うための最も簡単な (ただし必ずしも最適とは限りません) 方法は、URL に添付されたエラー メッセージを返すことです。

たとえば、http://example.com?error=badpasswordにリダイレクトすると、コードで次のように取得できます。

Error: <?php echo 'error:' . $_GET["error"]; ?>.

詳細はこちら: http://www.w3schools.com/php/php_get.asp

編集:基本的には以下と同じです...回答を入力している間に送信されたに違いありません

于 2013-08-19T23:39:32.950 に答える