【问题标题】:Session loses data on page refresh (php, apache vhost, IE)会话在页面刷新时丢失数据(php、apache vhost、IE)
【发布时间】:2013-05-02 00:15:46
【问题描述】:

在 IE 上,我的会话无法按我的意愿工作。

脚本::

<? 
session_start();

echo "Testing sessions " . $_SESSION['test'] . " working";

$_SESSION['test'] = 'are';
?> 
  1. 加载页面(显示“正在运行的测试会话”)
  2. 刷新页面(显示“测试正在运行”)至少我希望这个结果..

在 Chrome 中它可以工作 在fireFox它工作 在即它不起作用(取决于)

情况 1 失败 (IE) http://mysite.d.my-domain.com/(默认为 index.php)

情况 2 作品 (IE) http://prj.my-domain.com/mysite/D(默认为相同的 index.php)

两者都链接到我的 FreeBSD / apache 2.2 服务器上的相同物理位置。

如果我放置 session_id('someID') 它可以工作,但 session_id 不是我需要的。

我应该从以下方面看: - PHP(这是基于服务器的,所以我看不出会话失败的原因) - apache(这将如何受到浏览器的影响) - IE(浏览器会识别一个虚拟主机和另一个虚拟主机吗?)

请帮助所有搜索都是徒劳的

【问题讨论】:

  • 你真的需要在这些字符串后面加上$_SESSION['test'] 吗?为什么不在字符串之前实例化呢。
  • 如果我把它放在 echo 部分之前它总是可以工作的,因为它会在我输出之前存储在会话中。这样你只会在页面刷新的输出中看到“are”这个词。事实上,在某些情况下,IE 中失败的部分是什么
  • 这两种情况都在 apache 的 部分中定义
  • 您更改了会话设置吗?
  • 不,我没有改变任何东西。我只是使用两条不同的路线到达同一位置,这导致 IE 的行为不一致

标签: php apache internet-explorer session browser


【解决方案1】:

经过长时间的搜索,我终于找到了解决方案。

显然 IE 不能很好地处理我的子域名称中的下划线“_”字符。

但是将mysite_com.mydomain.com 更改为mysite-com.mydomain.com 会话又开始工作了。

所以实际上是 url 搞砸了。但仅作为子域部分 mydomain.com/mysite_com 确实有效。

【讨论】:

    猜你喜欢
    • 2017-03-22
    • 2014-12-31
    • 2014-08-16
    • 2023-03-25
    • 2014-07-20
    • 2019-05-16
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多