PHP Session变量不会跨页面持久化

时间:2013-04-07 20:04:18

标签: php ajax session-variables

我正在开发一个网络应用。用户登录后,应存储名为$_SESSION的{​​{1}}变量。但是,当我稍后尝试访问它时,我无法进行访问。

login.php和settings.php都可以通过AJAX访问并显示在模态窗口中。

的login.php:

user

打印出来:

<?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*/ } ?>

的settings.php

Array ( [user] => stdClass Object ( [id] => 11 [timestamp] => 2013-04-07 15:20:24 [username] => aakilfernandes [email] => email@gmail.com [salt] => 4d9b0fdc1d3241b9c9 [orders] => [karma] => 0 [stocks] => 0 [confirmation_code] => ed54er68d3d [confirmation_time] => 2013-04-07 15:20:24 [confirmed] => 1 ) )   

需要/ userdata.php

<?PHP
require("require/connect.php");
require("require/userdata.php");
/*other stuff*//

打印出来:

<?PHP session_start();
print_r($_SESSION);

1 个答案:

答案 0 :(得分:0)

在login.php中,我必须将session_start()移到require("require/connect.php");之上。即使是直接的下一行也行不通。

不确定为什么会改变任何东西,因为connect.php只是太行而没有输出。

<强> connect.php

<?PHP 
mysql_connect(/**/)or die("Couldn't connect to MySQL database");    
mysql_select_db(/**/) or die("Couldn't select MySQL database in connect.php");
?>