会话在某些机器上“消失”

时间:2009-10-01 19:22:45

标签: php session

我不确定我应该问的问题。遗憾!

我正在努力重新建立自己的网站,以便使用PHP5。服务器位于好友的地下室,我只是在进行编码并查看页面,就像其他任何页面一样。

我在$ _SESSION中跟踪登录详细信息。

当我坐在家里的机器上时,我可以登录到网站,所有内容都按照我所期望的所有页面上的SESSION方式进行。当我登录我的工作机器时,我获得了成功的登录并且可以看到SESSION变量,但是当我转到另一个页面时,SESSION就会消失,如session_id()中所示。

我之前使用PHP4构建的网站(并进行了调整以保持PHP5的快乐)并没有表现出这种行为,这使我可以在更改PHP5之前和之后的任何位置按预期登录。

我想我只是想找到接下来要探索的线索...在教我自我编码时遇到的所有谜题都出现在脸上,只是疯了。

5 个答案:

答案 0 :(得分:2)

我认为杰克对饼干有所了解。确保您的浏览器工作设置为接受来自该域的Cookie。确保没有禁用此功能的防病毒/反恶意软件。我会使用fiddler来查看工作机器和家用机器上的流量和标头。你应该能够快速发现差异,因为它听起来像是一个客户问题。

答案 1 :(得分:0)

可能是工作中的计算机不支持会话cookie。自从我上次阅读有关PHP会话的内容已经有一段时间了,但是从我记忆中来看......

  1. 调用session_start()。
  2. php检查浏览器是否已向服务器发送了cookie(需要提供唯一标识符。
  3. 如果是,则检查服务器上的检查以查找具有会话ID名称的文件
  4. 如果成功,它会解析文件并将变量设置为$ _SESSION数组
  5. 请注意,此过程的第一步是实际启动session_start()会话,这需要在任何输出之前调用。

    输出前有session_start()吗?

答案 2 :(得分:-1)

你在各种php文件中使用session_start()吗?

答案 3 :(得分:-1)

解决此问题的一种方法是将会话存储在数据库中。

Rich Smith的这篇DevShed文章是一个很好的起点: Storing PHP Sessions in a Database

会话不再保存为服务器上的文件,而是保存在数据库中的条目,并且应解决任何cookie问题。

答案 4 :(得分:-1)

两个ini中的session.auto_start的php.ini中的设置是否相同?

请参阅http://de3.php.net/manual/en/session.configuration.php#ini.session.auto-start