我正在制作管理面板我在所有信息与数据库匹配时实现登录区域我的意思是登录信息用户名和密码比我开始会话并重定向到索引页面但是非常混淆为什么当我在索引页面上实际页面刷新时会话为空我检查如果session null而不是page重定向到login page.also在每个页面上使用session_start();
。我已经检查了php.ini的生命周期,生命时间设置为1440默认。
checking.php
session_start();
if((!empty($result)) && (!empty($result2))){
$_SESSION['admin'] = $user;
header("location:../../index.php");
}
else {
echo "Something wrong";
}
的index.php
<?php
session_start();
if($_SESSION['admin'] == null)
{
header("location:system/access/login.php");
}
require('../config.php');
require('system/classes/userdata.php');
?>
现在任何一个解决方案。
答案 0 :(得分:1)
checking.php
//session should be started before every thing.
session_start();
if((!empty($result)) && (!empty($result2))){
$_SESSION['admin'] = $user;
header("location:../../index.php");
}
else {
echo "Something wrong";
}
答案 1 :(得分:0)
也许是因为null的东西,试试这个
if(isset($_SESSION['admin']){
//write your code
}
原因是NULL不等于NULL
答案 2 :(得分:0)
@Mubo,会话之前不应该启动会话,特别是如果你在会话中存储对象。
@ user3163274,这可能是会话配置的问题,可能是配置错误的cookie,或者根本没有禁用会话cookie(默认启用cookie)。问题可能是由您在会话中保存的数据引起的(特别是如果您持有对象)。
但是,如果我可以建议,请停止使用包含/要求和重定向的相对路径。此外,如果要针对空值测试数据,请使用等于===的运算符(它还检查类型)