我正在尝试使用下面的方法验证用户已经登录,然后使用下面的方法显示页面,而if / else方法在使用普通html时工作,当涉及到php时它会失败。顺便说一句,我是新手。会发生什么是页面只是加载,好像下面的两个标签不存在...如果我以前登录过会没问题,但我没有。
<?php
session_start();
if(isset($_SESSION['user'])) {
?>
HTML/PHP Page goes here.
<?php
} else {
header("Location: cms/admin/loginreadmode.php");
}
?>
提前致谢,
答案 0 :(得分:0)
您可以在session_start()下方进行调试;打印你的会话:
echo '<pre>';
print_r($_SESSION);
die();
如果$ _SESSION ['user']没有显示在您的数组中,则不会设置它。 你可以这样做:
session_start();
$_SESSION['user'] = true;
答案 1 :(得分:0)
您确定在每个页面都添加了会话支持吗?
if (!isset($_SESSION)) {
session_start();
}
此代码应该正常工作,所以如果你在登录后设置$ _session [&#34; user],我建议检查错误。 您还应该用简单的
替换不工作的代码部分echo "hello";
去扯它。
答案 2 :(得分:-1)
1)这不是检查用户是否登录的好方法,纯粹检查用户会话是否存在最终会导致很多问题。将ID存储在会话中,然后检查ID是否有效可能是更好的方法,
2)当我将上面的代码复制到测试文档中时,它会直接进入else语句中的重定向页面。这取决于用户会话未设置,只要我在代码执行之前设置用户会话就可以正常工作。我看到HTML / PHP页面就在这里。&#39;。
设置用户会话:
$_SESSION['user'] = 'TestUser';
答案 3 :(得分:-1)
您可以将页面顶部的代码更改为
<?php
session_start();
if(!isset($_SESSION['user'])) {
header("Location: cms/admin/loginreadmode.php");
die();
}
?>