【问题标题】:PHP session resettingPHP会话重置
【发布时间】:2017-04-10 04:04:25
【问题描述】:

我在 IIS 8.5 上运行 PHP 5.6。我使用了这个测试日志:

echo '<p>'.sizeof($_SESSION).' - '.session_id().' - '.ini_get('session.cookie_domain').'</p>';

有了它,我看到$_SESSION 有一些元素,cookie_domain 在 php.ini 中正确设置为我的域,但session_id() 在每个页面加载时都有不同的字符串。每次页面加载都会调用session_start()。

知道我可以做些什么来使会话持久化吗?

$sessionfile = ini_get('session.save_path') . '/' . 'sess_'.session_id(); 显示会话文件的位置。我可以打开它并且数据在那里。事实上,这是创建每个会话的过程,而不是保存它们的文件。

是否有可能是某些 IIS 设置或某些 asp 正在重置会话?

【问题讨论】:

  • 您在session_start(); 之后调用此代码对吗?
  • 是的,session_start() 是最先运行的东西之一。

标签: php session session-state


【解决方案1】:

如果您没有将会话存储在 IIS 中的权限,大多数情况下都会出现此问题。很久以前我有同样的问题。更正权限或会话路径解决了我的问题。

【讨论】:

  • 我明白了。但我相信这不是问题,因为我能够找到会话文件并将其打开,并且数据保存在该文件中。某些东西正在重置会话,可能是存储其引用的 cookie。
猜你喜欢
  • 2015-08-18
  • 2018-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2013-10-18
  • 1970-01-01
相关资源
最近更新 更多