[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: заголовки, а именно кукисы
Shkiper
Всем привет. Недавно читал статью про HTTP заголовки. И все там понял. Заголовки должны посылаться браузеру перед выводом текста. например даже если мы выведем букву "а" а потом пошлем заголовок, то выйдет нотис. Так что их нужно посылать первыми. Так же и с куками(ведь они через HTTP заголовки посылаются). Сначала их нужно послать(setcookie) а только потом выводить. Я этот пример видел в нете. Кстати его писал уважаемый человек(сказать не могу кто, ссылку потерял). Так вот там написано что нужно делать так:
setcookie("test", "value_cookie');
echo
$_COOKIE['test'];

а не так:
echo $_COOKIE['test']; 
setcookie("test", "value_cookie');

Ну вот вроде. решил потестить. написал код который мне дали. Мне ничего не вывело. После рефреша вывело. Это значит, что все таки заголовки послались после вывода. почему? У человека, который выкладывал тот урок, все работало. а у меня нет. Может у интерпретатора в настройках что-то не прописана?



Спустя 3 минуты, 42 секунды (20.09.2012 - 15:42) Winston написал(а):
Цитата (Shkiper @ 20.09.2012 - 15:38)
Мне ничего не вывело

Максимальный уровень ошибок выстави и получишь нотис

Спустя 1 минута, 54 секунды (20.09.2012 - 15:44) Shkiper написал(а):
Winston у меня стоит error_reporting(E_ALL | E_STRICT); и нечего не вывело. Да и зачем мне нотис. У него с первого раза вывело куку а у меня только после рефреша - почему?

Спустя 8 минут, 23 секунды (20.09.2012 - 15:52) 123456 написал(а):
Цитата
У него с первого раза вывело куку а у меня только после рефреша - почему?

Ты открываешь данный скрипт, и кука создается, а при обновлении она выводится! Не может быть такого, что в одном скрипте(на одной странице) за раз создается кука и выводится

Спустя 1 минута, 24 секунды (20.09.2012 - 15:54) 123456 написал(а):
Цитата
Максимальный уровень ошибок выстави и получишь нотис

Цитата
у меня стоит error_reporting(E_ALL | E_STRICT); и нечего не вывело.


хм...

Спустя 1 минута, 43 секунды (20.09.2012 - 15:56) Shkiper написал(а):
Нет работать должно. Ведь например если мы посылаем заголовок браузеру, например не кэшировать страницу, то эту же страницу(без рефреша) браузер не будет ее кэшировать. Но ведь когда мы создаем куки он тоже посылает заголовок, и он должен их сразу вывести.

Спустя 38 секунд (20.09.2012 - 15:56) Winston написал(а):
Та тебе уже, должно было вывести предупреждение, за то, что ты использовал echo до вызова setcookie

Спустя 1 минута, 4 секунды (20.09.2012 - 15:57) neadekvat написал(а):
Цитата (123456 @ 20.09.2012 - 16:52)
Не может быть такого, что в одном скрипте(на одной странице) за раз создается кука и выводится

Речь о единоразовом запуске скрипта, а не про один скрипт, я так думаю.

Обычно делают примерно так:
if (isset($_COOKIE['name']))
$cookie = $_COOKIE['name'];
else {
$cookie = 'default';
setcookie('name', 'value');
}

Спустя 1 минута, 33 секунды (20.09.2012 - 15:59) Shkiper написал(а):
Цитата (123456 @ 20.09.2012 - 12:54)
Цитата
Максимальный уровень ошибок выстави и получишь нотис

Цитата
у меня стоит error_reporting(E_ALL | E_STRICT); и нечего не вывело.


хм...

тьфу ты. Я там короче колдовал, шуры-муры то да се и короче вывод ошибок закоментил. Теперь вылез нотис.(это так для пояснения)

Спустя 1 минута, 9 секунд (20.09.2012 - 16:00) neadekvat написал(а):
Цитата (Shkiper @ 20.09.2012 - 16:56)
Но ведь когда мы создаем куки он тоже посылает заголовок, и он должен их сразу вывести.

Путаешься.
setcookie() ничего не отправляет. Он добавляет параметр в единый заголовок (он правда один), а заголовок от сервера отправляется ровно тогда, когда начинается вывод в поток (буковки и циферки на экран) или скрипт заканчивает работу.

Спустя 2 минуты, 7 секунд (20.09.2012 - 16:02) Shkiper написал(а):
neadekvat ну а почему тогда у него работало?

Спустя 11 секунд (20.09.2012 - 16:02) 123456 написал(а):
Цитата (neadekvat @ 20.09.2012 - 12:57)
Цитата (123456 @ 20.09.2012 - 16:52)
Не может быть такого, что в одном скрипте(на одной странице) за раз создается кука и выводится

Речь о единоразовом запуске скрипта, а не про один скрипт, я так думаю.

Обычно делают примерно так:
if (isset($_COOKIE['name']))
$cookie = $_COOKIE['name'];
else {
$cookie = 'default';
setcookie('name', 'value');
}

ну только если так... А по другому никак

Спустя 3 минуты, 5 секунд (20.09.2012 - 16:05) neadekvat написал(а):
Цитата (Shkiper @ 20.09.2012 - 17:02)
ну а почему тогда у него работало?

Что у кого работало?

Цитата (123456 @ 20.09.2012 - 17:02)
ну только если так... А по другому никак

Если не нравится писать условия, можно ввести доп. функцию для получения кукисов (там и проверка будет, и создание).

Спустя 3 минуты, 47 секунд (20.09.2012 - 16:09) 123456 написал(а):
Цитата
Цитата (Shkiper @ 20.09.2012 - 17:02)
ну а почему тогда у него работало?

Что у кого работало?

Цитата
У человека, который выкладывал тот урок, все работало. а у меня нет.


Спустя 8 секунд (20.09.2012 - 16:09) Shkiper написал(а):
Цитата
Что у кого работало?

Говорю же читал где то а где не помню
Мне нужно чтобы я на 1 странице сохранил куки и потом после того как я сохранил, их можно было прочитать. без рефреша

Спустя 3 минуты, 46 секунд (20.09.2012 - 16:13) neadekvat написал(а):
Цитата (Shkiper @ 20.09.2012 - 17:09)
Мне нужно чтобы я на 1 странице сохранил куки и потом после того как я сохранил, их можно было прочитать. без рефреша

Я показал, как должно быть.
Так сделать нельзя:
setcookie('name', 'value');
echo $_COOKIE['name'];

И точка.

Спустя 3 минуты, 25 секунд (20.09.2012 - 16:16) Shkiper написал(а):
neadekvat и что мне теперь location теперь делать каждый раз

Спустя 5 минут, 36 секунд (20.09.2012 - 16:22) neadekvat написал(а):
Цитата (Shkiper @ 20.09.2012 - 17:16)
и что мне теперь location теперь делать каждый раз

Что?

Спустя 20 часов, 50 секунд (21.09.2012 - 12:23) Shkiper написал(а):
neadekvat header location. ну теость куки создать а потом location`ом перерефрешится и только потом куки юзать?

Спустя 3 часа, 23 минуты, 44 секунды (21.09.2012 - 15:47) neadekvat написал(а):
Цитата (Shkiper @ 21.09.2012 - 13:23)
ну теость куки создать а потом location`ом перерефрешится и только потом куки юзать?

Я показал, какой есть вариант без использования переадресации.

Спустя 28 минут, 45 секунд (21.09.2012 - 16:15) killer8080 написал(а):
Цитата (Shkiper @ 20.09.2012 - 16:09)
Говорю же читал где то а где не помню
Мне нужно чтобы я на 1 странице сохранил куки и потом после того как я сохранил, их можно было прочитать. без рефреша

Ну вот а говоришь, что понял что такое заголовки biggrin.gif
setcookie устанавливает куки в заголовке ответа сервера,
$_COOKIE массив кук, из заголовков запроса клиента.
Разницу замечаешь wink.gif

Спустя 4 часа, 19 минут, 45 секунд (21.09.2012 - 20:35) Shkiper написал(а):
killer8080 так то да biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.