Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用会话控制返回回显_Php - Fatal编程技术网

Php 使用会话控制返回回显

Php 使用会话控制返回回显,php,Php,我正在用PHP处理会话。用户输入其姓名和密码,然后将其发布到php页面,如果数据库表中存在凭据,则该页面将启动会话,然后允许用户查看某些页面(如果有效),或者返回登录(如果无效)。 数据库和会话的一切工作正常,但当用户未登录时,它应该回显“您未登录”。然后返回登录页面。它会很好地返回到登录页面,但我在任何地方都看不到消息。有人能告诉我代码的顺序是否不正确,或者用另一种方法来显示错误,而不用页面来显示错误吗 <?php session_start(); echo '<h1&g

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

使用此选项,它将等待5秒钟,然后将重定向到
login1.html

header( 'refresh: 5; url=login1.html' );
echo '<h1>You will be re-directed in 5 seconds...</h1>';
标题('refresh:5;url=login1.html');
回音“你将在5秒钟内被重新引导…”;

我想这是因为您使用的是
标题('location:login1.html')
。它会立即重定向客户端。

尝试使用
标题('Refresh:2;url=login1.html')。它将等待
x
秒(本例中为2秒),然后重定向。你可以阅读更多关于它的内容

您不能重定向用户,同时希望他有时间查看您发送的消息。例如,您需要后退一步,划分流程,将其保存到变量中,并在下一页向用户显示

实现这一点的方法有很多种,但大多数web框架使用的最流行的方法是生成一条“flash消息”,该消息将只存在于会话中,直到下一个页面重新加载,从而只向用户显示一次


这会告诉你怎么做。如果你想使用现有的东西,谷歌上还有很多。你希望它如何显示消息和重定向?$\u会话['valid\u user']包含什么内容?@chandresh\u cool这并不重要。问题是重新定向page@asprin如果条件满足,他将不会被重新定向。重要的是,请再次检查