$_SESSION и IE

DriverCat
На сайте с 10.04.2008
Offline
116
925

Добрый день!

Пытаюсь добавить в массив $_SESSION['print'] новые значения

for ($s=0; $s<count($_POST['print']); $s++) {
array_push($_SESSION['print'], $_POST['print'][$s]);
}

Во всех браузерах, кроме IE все работает, В IE любой версии пишет The argument should be an array. Не понимаю как так может быть?

Походу IE забывает после перехода между страницами, что $_SESSION['print'] - это массив. Как еще раз обозначить его как массив, не потерев данные?

[umka]
На сайте с 25.05.2008
Offline
456
#1

Вообще-то, $_SESSION хранит не IE, а сервер.

IE хранит лишь куку.

А в вашем случае, он её, видимо, не хранит.

Лог в помощь!
DriverCat
На сайте с 10.04.2008
Offline
116
#2
'[umka:
;7583005']Вообще-то, $_SESSION хранит не IE, а сервер.
IE хранит лишь куку.
А в вашем случае, он её, видимо, не хранит.

это понятно, но что хоть попробовать-то можно?

Nunan
На сайте с 15.08.2008
Offline
78
#3

Попробуйте перед циклом сделать так:

$_SESSION['print']=array();

DriverCat
На сайте с 10.04.2008
Offline
116
#4
Nunan:
Попробуйте перед циклом сделать так:

$_SESSION['print']=array();

В таком случае получается, что я как бы заново объявляю переменную и данные все пропадают, хотя и ошибка тоже. Вот в чем и вопрос - как "напомнить" IE что это массив, не потерев данные???

DriverCat добавил 10.09.2010 в 13:40

Сейчас создал тестовый файл с кодом:

<?php

session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";
echo "<br><a href=".$_SERVER['PHP_SELF'].">обновить";

?>

чтобы проверить вообще как сессии работают, оказывается вообще в IE сессии не работают. Использую IE из набора multiple IE . Может это из-за этого???

t0os
На сайте с 25.02.2008
Offline
64
#5
Может это из-за этого???

Вполне может и из-за этого.

DriverCat
На сайте с 10.04.2008
Offline
116
#6
t0os:
Вполне может и из-за этого.

Снес эту прогу, переставил новый IE 8 со всеми обновлениями (у меня лицензия XP), в IE этот код, который в мануале

session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";
echo "<br><a href=".$_SERVER['PHP_SELF'].">обновить";

не работает.

Не приложу ума что может быть. Помогите, пожалуйста.

Разобрался: где то вычитал, что если в имени тестового домена есть нижнее подчеркивание, сессии в IE не работают. Помогло. IE - зло!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий