简体   繁体   English

PHP Session变量不在页面之间持久存在

[英]PHP Session variable not persisting across pages

I'm working on a web app. 我正在使用网络应用程序。 After a user logs in, a $_SESSION variable named user should be stored. 用户登录后,应存储一个名为user$_SESSION变量。 However, when I try to access it later I am unable to. 但是,当我稍后尝试访问它时,我无法访问。

Both login.php and settings.php are accessed via AJAX and displayed in a modal window. 通过AJAX可以访问login.php和settings.php并显示在模式窗口中。

login.php: 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*/ } ?>

prints out: 打印出:

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 ) )   

settings.php settings.php

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

require/userdata.php require / userdata.php

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

prints out: 打印出:

Array ( )

In login.php I had to move session_start() above require("require/connect.php"); 在login.php中,我不得不将session_start()移到require("require/connect.php"); . Even the directly next line didn't work. 甚至直接下一行都行不通。

Not sure why this changed anything, since connect.php is only too lines and no output. 不知道为什么这会改变任何东西,因为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");
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM