我有一个HTML页面,除非登录成功,否则我不希望它可用。我的登录开始一个会话,但我不知道如何检查HTML中的会话,如果会话存在,我想显示页面,如果不是,我想显示未经授权的消息。我怎么能这样做?
答案 0 :(得分:1)
您无法在PHP中检查您必须在PHP中执行此操作的会话。根据您使用PHP构建页面的方式,您可以尝试将这样的内容放在HTML文件的顶部:
<?php
if (!isset($_SESSION['my_login_var'])) {
echo 'Unauthorised';
exit();
}
?>
但是你在PHP代码中做得更好,在这种情况下,你可以使用header function将用户发送到正确的403页。
<强>更新强>
通常PHP会在输出HTML并将标头发送到连接客户端之前进行一些处理,因此您希望在输出发生之前发送403标头。这可以是在构建HTML之前运行的包含的PHP文件,如果在脚本到达该点之前没有输出其他内容,则甚至可以在HTML文件本身中运行。
您可以对上面的代码进行小幅调整,以发送403标题并“正确”拒绝访问该页面:
<?php
if (!isset($_SESSION['my_login_var'])) {
header('HTTP/1.1 403 Forbidden');
exit();
}
?>
答案 1 :(得分:0)
您将需要查找PHP会话。有关PHP session_start()
文档,请参阅http://us.php.net/manual/en/function.session-start.php。
基本上你需要做session_start()
。如果登录成功,请设置会话变量,如$_SESSION['logged_in'] = true;
。然后根据结果在页面上执行一些逻辑并重定向/显示消息。
如果您遇到问题,您应该尝试一些并回来询问更具体的问题。