使用会话控制返回回显

时间:2013-05-02 05:41:12

标签: php

我正在使用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

3 个答案:

答案 0 :(得分:0)

使用此功能,它会等待5秒钟,之后会重定向到login1.html

header( 'refresh: 5; url=login1.html' );
echo '<h1>You will be re-directed in 5 seconds...</h1>';

答案 1 :(得分:0)

我认为这是因为你正在使用header('location:login1.html')。它会立即重定向客户端 尝试使用header( 'Refresh:2; url=login1.html' );。它将等待x(在这种情况下为2),然后重定向。您可以阅读更多相关信息here

答案 2 :(得分:0)

您无法重定向用户,同时希望他有时间查看您要发送的邮件。您需要退后一步并将流程分开,将其保存到变量中,然后在下一页显示给用户。

有很多种方法可以实现这一点,但大多数网络框架使用的最流行的方法是制作一个&#34; flash消息&#34;只会在下一页重新加载之前存在于会话中,因此只向用户显示一次。

article告诉您如何操作。如果你想使用现有的东西,谷歌还有更多。