2010-02-01 31 views
0

我有一个很奇怪的问题。
情况:通过MySQL,PHP 5.2.4,通配符cookies,FF/Opera/Safari/Chrome工作,不支持IE7/8。PHP/Session/IE:常量被保存,变量不是

当我将变量保存到会话中时,该值将丢失。 DB在写操作后仅显示“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); 
    } 
} 

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

+0

感觉像问题是你如何处理会话,而不是传入会话的值。你能提供更多的上下文/代码吗? – Tom 2010-02-01 22:03:54

+0

浏览器通常不应该出现问题,所以有些奇怪的事情正在发生。 – 2010-02-01 22:09:01

回答

1

可能sessionId在cookie中每次都在IE中刷新?
SO每一次 - 新会话

+0

例如,如果页面在iframe中,那么存在很多问题 – azat 2011-02-23 19:31:15