我正在开发一个php项目。我正在使用会话变量。
我已经制作了2个文件来测试这个问题。
在Test1文件中,我在session中设置了值。下面是代码。
<?php
session_start();
$_SESSION['test']="demo";
?>
在test2文件中,我打印了此会话。
<?php
session_start();
echo $_SESSION['test'];
?>
会话值在test2文件中显示为空白,但它在test1文件中显示值,其中会话已设置。其他会话值未在其他页面上进行。这在localhost上工作正常,但在server上没有工作。是否存在问题服务器?我已附加服务器会话详细信息图像。
答案 0 :(得分:1)
您是否尝试“告诉”PHP应该跟踪哪个会话?
例如:如果您的会话ID变量在$ _GET ['session']中传递;
在执行session_start()之前运行以下命令:
session_id($_GET['session']);
修改强>
试试这个:
<?php
if( $_GET['SID'] != '' ) session_id($_GET['SID']);
session_start();
$sid = session_id();
print '<script>window.location = window.location + "&SID="' . $sid . '</script>';
?>
答案 1 :(得分:1)
检查Web服务器是否可以写入会话保存路径。
确保你打开了曲奇饼干...(当我把它们关掉来测试时我会忘记)
将firefox与firebug扩展名一起使用,以查看cookie是否已设置并传回。
答案 2 :(得分:0)
这在过去曾经发生在我身上。您必须确保在session_start()之前没有输出任何内容。这看起来很明显,但有时你会在文件的开头(在打开<?php
标记之前)有前导空白字符。或者另一种可能性是你使用的文本编辑器/编码在<?php session_start();
当然,我确信还有其他可能性,但之前发生过这种情况。