会话无法在服务器上进行其他页面

时间:2012-11-29 14:06:53

标签: php

我正在开发一个php项目。我正在使用会话变量。

我已经制作了2个文件来测试这个问题。

在Test1文件中,我在session中设置了值。下面是代码。

<?php
session_start();
$_SESSION['test']="demo";
?>

在test2文件中,我打印了此会话。

<?php
session_start();
echo $_SESSION['test'];
?>

会话值在test2文件中显示为空白,但它在test1文件中显示值,其中会话已设置。其他会话值未在其他页面上进行。这在localhost上工作正常,但在server上没有工作。是否存在问题服务器?我已附加服务器会话详细信息图像。enter image description here

3 个答案:

答案 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();

之前输出一些字符

当然,我确信还有其他可能性,但之前发生过这种情况。