我正在使用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
答案 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告诉您如何操作。如果你想使用现有的东西,谷歌还有更多。