массив $ _COOKIE
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



массив $ _COOKIE Expand / Collapse
Автор
Сообщение
22.06.2007 14:59
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 24.04.2008 21:42
Сообщ.: 131, Visits: 1 253
Подскажите,плз.Вот такой код

if (setcookie($value_good_parametrs, 1, time()+7200)) echo "Повесили куку";
else echo  "Не удалось повесить куку";

var_dump($_COOKIE);

Выдает

Повесили куку

array(0) { }

Что-то я не понимаю,если я успешно повесил кукку,то хотя бы один элемент в массиве должен существовать.

Сообщ. #914279
22.06.2007 15:16
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
В массиве $_COOKIE[] находятся cookie которые клиент отправил серверу в текущем запросе. Функция setcookie работает в обратном направлении - отдает cookie клиенту. Затем при следующем запросе клиент отправит серверу и тогда она попадает в массив $_COOKIE[]. 
Сообщ. #914280
22.06.2007 15:29
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 24.04.2008 21:42
Сообщ.: 131, Visits: 1 253
bazile:  Я примерно так и понял. после того как куку вешаю,делаю принудительную перезагрузку страницы

 <script language="JavaScript">
 location.href = "basket.php";
 </script>

,а потом снова пытаюсь вывести COOKIE,а он все равно пустой. Локально все работает нормально,видимо,сервер как-то хитро наст роен в плане кук.

Сообщ. #914281
22.06.2007 16:30
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 24.04.2008 21:42
Сообщ.: 131, Visits: 1 253
Наверное,надо переформулировать вопрос. Я сделал несколько сайтов с использованием COOKIES. Они вполне нормально работали,но потом,судя по всему, админы что-то перенастроили на сервере,и нав всех сайтах перестали вешаться cookies .

Может кто посоветует с  какой стороны подойти к решению проблемы.Пока тупо пытаюсь загнать в .htaccess все локальные настройки связанные с cookies

Сообщ. #914283
22.06.2007 17:26
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Почему ты используешь JavaScript код для обновления вместо вызова header('Location: basket.php')? Зачем вообще делать редирект из-за какой-то cookie? Сохрании значение cookie в какую-нибудь переменную и нет проблем.

Чтобы понять почему не сохраняется cookie стоит начать с просмотра лога веб-сервера. Если у тебя Апач, то ошибки php будут падать в его error-log. Убедись что там нет ошибок связанных с cookie. Если ошибок нет воспользуйся http отладчиком под названием Fiddler. С его помощью можно увидеть какие cookie ходят в обе стороны. Еще вариант, что проблема в переполнении кеша временных файлов MSIE. Попробуй очистить его.

Сообщ. #914285
22.06.2007 18:22
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 24.04.2008 21:42
Сообщ.: 131, Visits: 1 253
Еще вариант, что проблема в переполении кеша временных файлов MSIE, попробуй очистить его.

Судя по всему,это и есть правильный ответ.Большое спасибо. Запустил сайт под Мозиллой нормально работает.С другого компа под ИЕ тоже все норм. Вот только как решить проблему на практике.Не писать же посетителю "Если у вас ничего не работает-почистите куки и временные файлы Интернета"

Сообщ. #914287
24.06.2007 18:19
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Програмным путем тут скорее всего ничего не сделать. Поиск на support.microsoft.com результата также не дал.
Сообщ. #914294
25.06.2007 10:28
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 24.04.2008 21:42
Сообщ.: 131, Visits: 1 253
Ради интереса затестил вот такой код.

Файл cookie.php

 if (empty ($_POST))
        {
         ?><form method = "post"><?
         echo '<input type="text" name="test">';
         ?><input type="submit"></form><?
         var_dump ($_COOKIE);        
        }
 else
        {
        $test = $_POST['test'];
        setcookie("test",$test,time()+99999999999999999);
        header("Location: cookie.php");
        }

Под Мозиллой работает,под ИЕ локально работает и работает на хостинге под ИЕ с некоторых компьютеров,с хостинга под ИЕ-не пашет,но опять же,с некоторых компьютеров. Что интересно,очистка cookies и временных файлов интернета результатта не дает.Попробую что-нибудь в .htaccess прописать.

Сообщ. #914297
25.06.2007 17:26
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
В данном случае ты слишком много секунд добавляешь, что приводит к получению даты в прошлом.
Сообщ. #914309