0

PHPでセッションを扱っています。ユーザーが自分の名前とパスワードを入力すると、これが php ページにポストされ、資格情報がデータベース テーブルに存在する場合はセッションが開始され、ユーザーは有効な場合は特定のページを表示でき、無効な場合はログインに戻ることができます。ユーザーがログインしていない場合を除いて、データベースとセッションのすべてが機能します。「ログインしていません」というメッセージが表示されます。ログインページに戻ります。ログインページに問題なく戻りますが、どこにもメッセージが表示されません。コードの順序が間違っているかどうか、またはエラーを表示するためだけにページを持たずにエラーを表示する別の方法があるかどうかを誰かに教えてもらえますか?

    <?php
session_start();

echo '<h1>Employees Only</h1>';

if (isset($_SESSION['valid_user']))
{
    if ($_SESSION['valid_user'])
    {
        echo "<p>You are currently logged in as " . $_SESSION['valid_user'] . "</p>";

        $form  = "<form action=\"logout.php\" method=\"post\">";
        $form .= "<input type=\"submit\" name=\"logout\" value=\"Log Out\">";
        $form .= "</form>";
        echo $form;
    }
    else
    {
        echo "<p>You are not logged in.</p>";
        header("Location:login1.html");
        exit();
    }
}
else
{
    echo "<p>You are not logged in.</p>";
    header("Location:login1.html");
    exit();
}
    ?>

「あなたはログインしていません」というエコー。表示されませんが、login1.htmlに戻っています

4

3 に答える 3

0

ユーザーをリダイレクトすることはできませんが、同時に、送信しているメッセージをユーザーが見る時間があると期待できます。一歩下がってプロセスを分割し、変数に保存して、たとえば次のページでユーザーに表示する必要があります。

これを実現するにはさまざまな方法がありますが、ほとんどの Web フレームワークで最も一般的に使用されているのは、次のページがリロードされるまでセッションにのみ存在する「フラッシュ メッセージ」を作成することです。これにより、ユーザーには 1 回だけ表示されます。

この記事では、その方法を示します。既存のものを使用したい場合は、Google にもっとたくさんあります。

于 2013-05-02T05:50:45.833 に答える