我无法在一个页面上将会话变量设置为另一个页面,我的代码在下面。
第一页
session_start();
header('Content-Type: application/json;charset=utf-8');
///mysql connections
while($row = mysql_fetch_array( $sthpre )){
// Print out the contents of each row into a table
$rows[] = $row;
$_SESSION['id']=$row['id'];
print json_encode($row);
}//still i get null on the other page $_SESSION['id'] = 22;
第二页
session_start();
header('Content-Type: application/json;charset=utf-8');
$row['id']=$_SESSION['id'];
print json_encode($row);
答案 0 :(得分:0)
试试:
在session_start();
session_regenerate();
标题(' Content-Type:application / json; charset = utf-8');
$行[' ID'] = $ _ SESSION [' ID']; print json_encode($ row);
答案 1 :(得分:0)
根据您在每个页面中有不同会话ID的知识,我的猜测是,php尝试用来存储会话的目录不能由apache用户写入。如果您创建一个页面并放置:
session_save_path();
它会告诉你php在哪里尝试在服务器上写入会话信息。确保它显示给你的目录可由apache用户写入(很可能是www-data)。或者将其更改为可写的其他目录。您可以在代码中执行此操作:
session_save_path('/tmp');
或者您可以在php.ini文件中更改它。
如果这不是问题,而且是因为您的应用未维护一致的会话ID,则可以强制执行session_id。
session_start();
session_id('5468313'); //any random id
只需在两个文件中执行此操作,但是您需要为每个登录的人生成不同的会话ID,否则每个人都将共享同一个会话。