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

Форум PHP

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

 

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

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

тема: про куки
 
 автор: btr   (19.08.2012 в 17:48)   письмо автору
 
 

Здравствуйте.

Объясните, пожалуйста, почему такая штука:
1 при первом посещении создается кука.
2 тут же проверяется ее наличие с целью подключения скрипта
3 однако проверка не проходит (т.е. с точки зрения сервера ее нет?)
лезу в инструменты браузера - там кука есть...

чувствую, чего-то я не понимаю, помогите пожалуйста

  Ответить  
 
 автор: confirm   (19.08.2012 в 17:55)   письмо автору
 
   для: btr   (19.08.2012 в 17:48)
 

Дело в том, что cookie браузер записывает после закрытия страницы, и вы их можете получить только при повторном входе на страницу. Если устанавливать cookie на клиенте посредством JavaScript, то они будут доступны на клиенте сразу после установки.

  Ответить  
 
 автор: btr   (19.08.2012 в 18:03)   письмо автору
 
   для: confirm   (19.08.2012 в 17:55)
 

так. Вот мои рассуждения - поправьте если что не так
1 куку установить надо до любого вывода в браузер (в тч хедера)
2 каким же образом это сделать js? он же вроде клиентский язык?

  Ответить  
 
 автор: confirm   (19.08.2012 в 18:09)   письмо автору
 
   для: btr   (19.08.2012 в 18:03)
 

А я вас разве заставляю установку производить на клиенте?
Я вам просто объясняю, что установив cookie на сервере, она вам доступна будет только после повторного посещения этой страницы, или иной, на которую также распространяется ее действие.
А вот при установке на клиенте, будет доступна сразу, так как это такой же объект на клиенте как и иные.

  Ответить  
 
 автор: btr   (19.08.2012 в 18:18)   письмо автору
 
   для: confirm   (19.08.2012 в 18:09)
 

К сожалению, я не понимаю, что вы говорите. Что значит - при установке на клиенте/на сервере? кука есть кусочек данных которые сервер записывает на машину клиента... по моему пониманию

Может вы приведете пример? для наглядности? а то я даже не знаю, в какую сторону книжку листать...

Моя частность такова: Заходит пользователь на сайт впервые, я ему тут же пишу куку в виде номера из базы и по этому номеру собираю его историю перемещения.

  Ответить  
 
 автор: confirm   (19.08.2012 в 18:24)   письмо автору
 
   для: btr   (19.08.2012 в 18:18)
 

Сервер ничего не может записать на клиенте, такова политика безопасности.
Получив от сервера параметры cookie браузер хранит их в памяти, а записывает только после закрытия страницы. Вот с этого момента на клиенте и начнет существование установленная сервером cookie.
Пример и сами можете делать - установите cookie, и проверьте ее наличие, будет пусто. Закройте свою страницу, зайдите опять, прочтите cookie - она будет доступна.

  Ответить  
 
 автор: btr   (19.08.2012 в 18:27)   письмо автору
 
   для: confirm   (19.08.2012 в 18:24)
 

ДАнный пример у меня перед глазами :) написанный на пхп

я просил пример на яваскрипте... или я опять не понял? :О

возможно, вы имели ввиду что в любом случае кука видна "только со второго раза"?

  Ответить  
 
 автор: confirm   (19.08.2012 в 18:48)   письмо автору
 
   для: btr   (19.08.2012 в 18:27)
 

Вы читаете и не понимаете или в чем проблемы?
Я писал, что установленное на РНР не доступно сразу, и почему, а установленное на клиенте достуно сразу, но доступно сразу тоже на клиенте!

  Ответить  
 
 автор: btr   (19.08.2012 в 19:01)   письмо автору
 
   для: confirm   (19.08.2012 в 18:48)
 

Ради бога, только не ругайтесь.

про пхп все понятно.

про клиента: доступно сразу на клиенте в смысле для JS? т.е. с сервера при первом проходе ее ведь все равно не достать?

Большое спасибо за пояснение

  Ответить  
 
 автор: confirm   (19.08.2012 в 19:17)   письмо автору
 
   для: btr   (19.08.2012 в 19:01)
 

А я разве ругаюсь? )
Да, на клиенте доступно. Отдав пользователю страницу, сервер же не имеет к ней доступа, и все что на ней в это время делается серверу неведомо. Это, думаю, и без пояснения должно быть понятно.
Да и зачем вам нужно считывать сразу же после установки? Устанавливая ее, это значит вы знаете, что пользователь пришел на эту страницу.

  Ответить  
 
 автор: btr   (19.08.2012 в 19:49)   письмо автору
 
   для: confirm   (19.08.2012 в 19:17)
 

Да в общем, незачем. В порядке повышения образованности: ведь про этот нюанс в книжках не пишут.. Вот и спросил, а вдруг есть хитрость?

Сразу не понял, второй раз прочел - вроде дошло :) со мной бывает

Спасибо за ответ

  Ответить  
 
 автор: confirm   (19.08.2012 в 20:01)   письмо автору
 
   для: btr   (19.08.2012 в 19:49)
 

> ведь про этот нюанс в книжках не пишут

Это не так. Механизм самой cookie, это механизм принадлежащий клиентской стороне, и РНР не касается, и в описании функции их установки, конечно о работе этого механизма писать не будут. Но откройте более менее хорошую книгу по JS, и вы прочтете более обширные сведения об этом. Подобные сведения можно прочесть и в сети.

  Ответить  
Rambler's Top100
вверх

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