IIS PHP远程IE会话重置页面加载

时间:2014-12-17 11:35:23

标签: php internet-explorer iis session-cookies

我绝对无处不在寻找解决方案,但每个解决方案都没有奏效。

我的问题 我在IIS上运行了一个php站点,当我登录IE浏览器时,我的会话会在每次加载页面时重置。

然而,当它在服务器上浏览时,它适用于Chrome,Firefox,Safari和IE。

我尝试过的事情

  • 检查了服务器名称,它的所有单词,所以没有下划线(因为我看到这个为某些人修复了它)。
  • 设置标题以允许第三部分Cookie(虽然我不应该这样做,因为这是在Intranet上)。无论如何它没有用。
  • 权限不是问题,cookie存储在c:\ php \ tmp中 - 它也适用于所有其他浏览器。
  • Internet Explorer的Cookie和安全性设置为允许所有。
  • 在兼容性和普通模式下都会发生这种情况。

注意事项

  • 我设置php将错误记录到事件查看器中......没有错误。
  • 在IE 11中尝试过此操作,尚未在其他版本的IE中尝试过。
  • 域名布局是myservername:3000
  • 它在IIS中映射到localhost端口3000(这可能是一个问题吗?在服务器上浏览时我使用localhost浏览它 - 并且会话工作 - 但是通过内部连接我使用服务器名称,例如:myservername:3000)

导致错误

  • 我输入登录信息。
  • 获取重定向,网络显示一个PHPSESSID值与服务器上存储的会话文件相同的cookie。图片如下:

enter image description here 提交和重定向后,我有会话,但在此之后导航,会话cookie丢失。

我对如何解决这个问题没有其他想法。非常感谢帮助

1 个答案:

答案 0 :(得分:0)

好的,所以在发布这篇文章并通过阅读后我已经弄明白了。由于它是如此痛苦,我认为最好分享的区域,在检查IE DevTools中的cookie数据时>网络面板,我注意到Cookie路径和域名不正确。

所以在我的php.ini设置中,我注释掉了session.domain和session.save_path变量(它们分别设置为指向localhost和php \ tmp(正如你在IE DevTools图片中看到的那样)。

仔细检查它们在phpinfo()中被设置为“未设置”;回收了应用程序池和BAM!现在,IE在所有页面上保持会话cookie与所有其他浏览器保持一致。