0

我正在处理一个 php 项目。我正在使用会话变量。

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

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

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

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

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

会话值在 test2 文件中显示为空白,但在设置会话的 test1 文件中显示值。哪个会话值未在其他页面上进行。这在 localhost 上完美运行,但在服务器上不起作用。服务器上有问题吗?我附上了服务器会话详细信息图像。在此处输入图像描述

4

3 回答 3

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>';
?>
于 2012-11-29T14:26:02.273 回答
1

检查会话保存路径是否可被 Web 服务器写入。

确保你打开了cookies..(当我关闭它们来测试某些东西时我忘记了)

使用带有 firebug 扩展的 firefox 来查看 cookie 是否被设置并传回。

于 2012-11-29T14:35:20.900 回答
0

这在过去发生在我身上。您必须确保在 session_start() 之前没有向浏览器输出任何内容。这似乎很明显,但有时您在文件的开头(在您的开始<?php标记之前)有前导空白字符。或者另一种可能性是您使用的文本编辑器/编码在<?php session_start();

当然,我敢肯定还有其他的可能性,但这种情况以前发生在我身上。

于 2012-11-29T14:26:49.317 回答