Php登录脚本不会包装PHP

时间:2014-11-21 15:32:17

标签: php html

我正在尝试使用下面的方法验证用户已经登录,然后使用下面的方法显示页面,而if / else方法在使用普通html时工作,当涉及到php时它会失败。顺便说一句,我是新手。会发生什么是页面只是加载,好像下面的两个标签不存在...如果我以前登录过会没问题,但我没有。

<?php
session_start();
if(isset($_SESSION['user'])) {
?>

HTML/PHP Page goes here.

<?php
} else {
    header("Location: cms/admin/loginreadmode.php");
}
?>

提前致谢,

4 个答案:

答案 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();
}
?>