【问题标题】:PHP/Session/IE: Constant are saved, variable notPHP/Session/IE:保存常量,不保存变量
【发布时间】:2011-02-24 03:30:48
【问题描述】:

我有一个很奇怪的问题。
情况:通过 MySQL、PHP 5.2.4、通配符 cookie、FF/Opera/Safari/Chrome 工作的会话处理,IE7/8 不工作。

当我将变量保存到会话中时,该值会丢失。数据库在写入操作后仅显示“N”而不是“123456”。
示例:

$bar = 123456;
$_SESSION['foo'] = $bar;

但是当我在会话中保存一个常量时,它可以工作。

$_SESSION['foo'] = 123456;

这不是真正的客户端问题,但仅在 IE 中不起作用。
有什么想法吗?

编辑
这是会话写入函数:

function _write($id, $data) {

    $write = "UPDATE session SET time='".time()."', data='".mysql_real_escape_string($data)."' WHERE id='".mysql_real_escape_string($id)."'";
    $result = @mysql_query($write);
    if(mysql_affected_rows()) return $result;
    else {
        $write = "INSERT INTO session (id, time, data) VALUES ('".mysql_real_escape_string($id)."', '".time()."', '".mysql_real_escape_string($data)."')";
        return @mysql_query($write);
    }
}

当我打印更新查询 ($write) 时,一切看起来都很好。我可以手动执行 SQL,它也可以使用变量。

【问题讨论】:

  • 感觉问题在于您如何处理会话,而不是传递给会话的值。你能提供更多的上下文/代码吗?
  • 浏览器通常不重要,所以发生了一些奇怪的事情。

标签: php mysql session internet-explorer variables


【解决方案1】:

也许cookie中的sessionId每次都在IE中刷新?
所以每次 - 新会话

【讨论】:

  • 例如,如果页面在 iframe 中,则存在很多问题
猜你喜欢
  • 2023-04-06
  • 2011-06-15
  • 2016-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多