PHP - 在HTML页面中检查会话

时间:2011-09-26 00:31:52

标签: php mysql session

我有一个HTML页面,除非登录成功,否则我不希望它可用。我的登录开始一个会话,但我不知道如何检查HTML中的会话,如果会话存在,我想显示页面,如果不是,我想显示未经授权的消息。我怎么能这样做?

2 个答案:

答案 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;。然后根据结果在页面上执行一些逻辑并重定向/显示消息。

如果您遇到问题,您应该尝试一些并回来询问更具体的问题。