我正在開發一個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