我正在从登录页面 ($_SESSION['login']) 设置会话变量。我已经彻底测试过,肯定会创建变量并存储正确的值($_SESSION['login'] = '1'),但使用 Chrome、Opera 或 Firefox 在下一页中无法识别该变量- 奇怪的是,在 Safari 和 Internet Explorer 中,相同的脚本可以正常工作。
任何帮助都将不胜感激-我一直在尝试解决这个问题,但无法得到它-我在这里完全不知所措。
这是一步一步-
<?php
// log in page
// if logged in successfully set the session variable
session_start();
if (// log in credentials good) {
$_SESSION['login'] = '1';
header('location:inside_page.php');
// echo $_SESSION['login'] ;
// ----------------------
// commenting out the redirect and echoing
// the session variable works as expected
// in IE, Safari, Chrome, Opera and Firefox
}
?>
这是我的 Check_login 类 - 它在下一页(inside_page.php)中被实例化 -
班级:
<?php
if (! defined('EXT')){ exit('Invalid file request'); }
class Check_login {
private $login = null ;
function __construct() {
session_start();
$this->login = $_SESSION['login'];
if ($this->login != '1') {
header('location:../index.php');
}
// $login = $this->login ;
// echo $login ;
// $session = $_SESSION['login'];
// echo $session ;
// ----------------------
// commenting out the redirect and echoing the
// session variable shows 1 in IE and Safari, but
// empty in Chrome, Opera and Firefox
}
}
?>
页面(inside_page.php):
<?php
require('../lib/Check_login.php');
session_start();
$login = new Check_login;
?>
同样,任何帮助都会非常棒。谢谢!