我正在开发一个web应用程序。用户登录后,应存储名为user
的变量$_SESSION
。但是,当我尝试访问它后,我无法。PHP会话变量不会持续在页面上
login.php和settings.php均通过AJAX访问并显示在模态窗口中。
的login.php:
<?PHP
require("require/connect.php");
$errors = array();
$passed=FALSE;
if(isset($_POST['username']) && isset($_POST['password'])){
/* Check db, no output */
if($record->password != $password){ ?>
/* Output login fail message */
<?PHP }else if(intval($record->confirmed)!=1){ ?>
/* Output email not cofirmed message */
<?PHP }else{ ?>
$user = clone $record;
unset($user->password);
session_start();
$_SESSION['user']=$user;
print_r($_SESSION);
/*output success message*/
<?PHP };
}else{ /*output login form*/ } ?>
打印出:
Array ([user] => stdClass Object ([id] => 11 [timestamp] => 2013-04-07 15:20:24 [username] => aakilfernandes [email] => [email protected] [salt] => 4d9b0fdc1d3241b9c9 [orders] => [karma] => 0 [stocks] => 0 [confirmation_code] => ed54er68d3d [confirmation_time] => 2013-04-07 15:20:24 [confirmed] => 1))
的settings.php
<?PHP
require("require/connect.php");
require("require/userdata.php");
/*other stuff*//
要求/ userdata.php
<?PHP session_start();
print_r($_SESSION);
打印出:
Array ()
地方'在session_start()'在你的代码的顶部,只是为了避免任何问题 – 2013-04-07 20:06:41
'的session_start()'必须产生任何输出之前,甚至白-spaces。 – rcdmk 2013-04-07 20:18:24