2010-02-01 51 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