2010-02-01 2 views
0

У меня очень странная проблема.
Ситуация: Обработка сеансов через MySQL, PHP 5.2.4, подстановочные файлы cookie, FF/Opera/Safari/Chrome работает, IE7/8 нет.PHP/Session/IE: константа сохраняется, переменная не

Когда я сохраняю переменную в сеансе, значение теряется. БД показывает после действия записи только «N» вместо «123456».
Пример:

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

Но при сохранении постоянной в сессии, она работает.

$_SESSION['foo'] = 123456; 

Это не проблема клиента, но только в IE это не работает.
Любые идеи?

Edit:
Это функция сеанса записи:

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

+0

Браузер обычно не имеет значения, так что происходит что-то странное. –

ответ

1

Может быть, sessionId в cookie каждый раз освежает IE?
SO каждый раз - новая сессия

+0

Для exmaple, если страница находится в iframe, есть много проблем с этим – azat

Смежные вопросы