Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему куки пробуксовывают?
 
 автор: Eugene77   (19.05.2007 в 19:21)   письмо автору
 
 

Вот простейший пример:

<?php 
setcookie
("visit""visit"); 

echo 
"Вы посетили эту страницу visit "

?>
<html>
<head>
</head>
<body>
<script>
document.cookie = 'java = java';
document.write(document.cookie);
</script>
</body>
</html>

Когда включаю браузер и запускаю его, то ставится только куки java, при повторе ставятся оба кука. Почему?
Может быть это особенность браузера?
А как у вас?
Хотелось бы в итоге получить надёжный код, дающий одинаковые результаты в любом случае. Вы меня понимаете!

   
 
 автор: bronenos   (19.05.2007 в 19:29)   письмо автору
 
   для: Eugene77   (19.05.2007 в 19:21)
 

после setcookie вы сможете с ней оперировать только после перезагрузки страницы, так как шлется заголовок Set-Cookie
document.cookie работает напрямую с объектом печенюшек, поэтому результат виден сразу

   
 
 автор: Eugene77   (19.05.2007 в 19:59)   письмо автору
 
   для: bronenos   (19.05.2007 в 19:29)
 

А поторопить раскладку печенок нельзя? Уж больно кушать хочется! :))))
Может как-нибудь ob_start или что-то в этом роде помогает?
Разбивать на два файла расстановку и проверку куков - это так загромоздит код, что я запутаюсь в нём прежде чем сочиню!

   
 
 автор: bronenos   (19.05.2007 в 20:04)   письмо автору
 
   для: Eugene77   (19.05.2007 в 19:59)
 

дело вот в чем
при запросе страницы браузер отправляет заголовки, в том числе с печеньками, из них формируется массив $_COOKIE
потом сервер отдает свои заголовки, в том числе с setcookie, и браузер их устанавливает
НО массив с ними уже сформирован, и новые в него просто не попадают
такие пироги

   
 
 автор: Eugene77   (19.05.2007 в 21:33)   письмо автору
 
   для: bronenos   (19.05.2007 в 20:04)
 

Спасибо!
Теперь понятно - пробуксовка в самой природе обмена заголовками.
Но тогда, если даже поставить JavaScript ом куки, isset их не должен обнаруживать? Правильно я понимаю? Повторный запрос заголовков невозможен?

   
 
 автор: bronenos   (19.05.2007 в 22:34)   письмо автору
 
   для: Eugene77   (19.05.2007 в 21:33)
 

нет, посколько isset это php, а js их ставит уже после работы php

   
 
 автор: Trianon   (19.05.2007 в 23:44)   письмо автору
 
   для: Eugene77   (19.05.2007 в 21:33)
 

JavaScript работает на клиентской машине, кукисы тоже на ней лежат.
isset выполняется на машине сервера.
PS. начните же наконец думать! Половина вопросов сразу уйдет!

   
 
 автор: Eugene77   (20.05.2007 в 05:47)   письмо автору
 
   для: Trianon   (19.05.2007 в 23:44)
 

Это понятно, что думать полезно, но непонятно может ли один и тот же скрипт повторно запросить заголовки с cookies, не перезапускаясь.

   
 
 автор: bronenos   (20.05.2007 в 06:58)   письмо автору
 
   для: Eugene77   (20.05.2007 в 05:47)
 

не скрипт запрашивает, а клиент шлет сначала

   
 
 автор: Trianon   (20.05.2007 в 11:11)   письмо автору
 
   для: Eugene77   (20.05.2007 в 05:47)
 

Вот если подумать, то окажется, что сам скрипт никаких заголовков не запрашивает. Они, при очередном запросе клиентом какого-либо контента с сервера, к нему сами прибегают. Точнее высылаются браузером, вместе с запросом контена. Любого.

   
 
 автор: Eugene77   (20.05.2007 в 12:49)   письмо автору
 
   для: Trianon   (20.05.2007 в 11:11)
 

Мне трудно было предположить, что cookies каждый раз высылаются браузером с запросом. Cookies ведь могут быть довольно объёмистые и если каждый раз их пересылать, то это может создать тяжёлый траффик! Буду теперь тщательней огрантчивать область видимости cookies!

Но зато теперь, благодаря вашим усилиям, у меня появилась ясная схема обмена
информацией между браузером и сервером.

Спасибо!

   
 
 автор: Trianon   (20.05.2007 в 13:18)   письмо автору
 
   для: Eugene77   (20.05.2007 в 12:49)
 

Довольно объемистыми куки не делают, поскольку существует ограничение на хранимый браузером объем кукисов с одного сервера (порядка нескольких десятков кБ). Ну и потому, что хранятся они на клиентской машине, которой в общем смысле сервер никак не владеет.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования