在PHP中共享会话实例

时间:2011-04-05 06:29:41

标签: php session

我想在PHP中使用session。但它在我的场景中显示出一些问题。

我想在3个不同的PHP文件中共享同一个会话。

./sessionTest/testing1.php
./testing2.php
./testing3.php

如果我在testing1.php的$ _SESSION中存储了一些信息,我就无法访问其他2个文件中的相同信息

如何使这3个文件共享同一会话实例? 是否有其他(除了cookie)使这成为可能?

P.S。这3个文件由不同的调用执行,不能使用include()或require()函数将一个文件包含到另一个文件中。

在顶部添加了session_start(),但仍然没有共享同一个会话。

5 个答案:

答案 0 :(得分:4)

像这样: - )

//<-- testing1.php -->
<?php
session_start();

$_SESSION['value'] = "Text!";
?>


//<-- testing2.php -->
<?php
session_start();

echo $_SESSION['value']; //Text!

?>

答案 1 :(得分:1)

请参阅本教程:PHP Sessions 也许它可以帮助您理解使用会话

答案 2 :(得分:0)

获取用于MSIE的iehttpheaders或用于Firefox的Web开发人员工具栏/ firebug,并检查您的PHP代码/呈现的cookie是否被删除。还要检查setcookie标题上的路径和标志。

答案 3 :(得分:0)

是否禁用了PHP错误?如果是这样,你可能在代码中遇到问题而只是没有看到它?我已经发生这种情况,我在开始会话之前在输出流中有一些空格,这意味着会话因为会话头没有先发送而中断。当然,没有php错误显示它并不明显为什么变量是null。

答案 4 :(得分:0)

只是更新,因为我在这里遇到了一些问题。如果网站有多个会话/ cookie,则使用session_name()会很有帮助。查看浏览器首选项以查看浏览器存储的cookie。我发现如果你使用不同的会话,你必须经常刷这些cookie才能看到发生了什么。

<?php
  session_name('mySession');
  session_start();
  $_SESSION['value'] = "Text!";
?>

<?php
  session_name('mySession');
  session_start();
  echo $_SESSION['value'];
?>