Помощник
|
Не ставятся cookie |
Banderas
|
Сообщение
#1
|
||
|
|
||
|
|||
FordogeN |
21.3.2011, 16:17;
Ответить: FordogeN
Сообщение
#2
|
|
а вначале кода есть?
session_start();
-------------------- |
|
|
Banderas
|
Сообщение
#3
|
|
причем логин и хеш существуют, да и вообще решил вывести инфу, вот что показало
Banderas123:a87ff679a2f3e71d9181a67b7542122c
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\blogup.com\www\login_handler.php:27) in Z:\home\blogup.com\www\login_handler.php on line 28 cookie fuck Warning: Cannot modify header information - headers already sent by (output started at Z:\home\blogup.com\www\login_handler.php:27) in Z:\home\blogup.com\www\login_handler.php on line 29 Приветствуем Вас Banderas123 Спасибо за авторизацию! |
|
|
FordogeN |
21.3.2011, 16:24;
Ответить: FordogeN
Сообщение
#4
|
|
это ты в браузере проверил?
зы. По поводу сейшн_старт затупил. подумал что ты сессию ставишь))) -------------------- |
|
|
sc2r2bey |
21.3.2011, 16:40;
Ответить: sc2r2bey
Сообщение
#5
|
|
ай-яй-яй, безобразие!!!
опять одни и те же грабли, куки надо ставить до вывода чего-либо в браузер, про заголовки надо помнить всегда!!! http://www.phpfaq.ru/headers -------------------- программирую web и для we Поблагодарили: (0) |
|
|
Banderas
|
Сообщение
#6
|
|
Оки, наконецто записал куки... Но вопрос в том, что мне нужно записать два элемента в массив КУКИ. Я делаю запись
[php]<?php setcookie('login', 'lololo', time() + 60*60*24*30) ? print('cookie OK') : print('cookie fuck'); setcookie('hash', 'fdsfsdfsadfsdf2fds', time() + 60*60*24*30) ? print('cookie OK') : print('cookie fuck'); include ('db.php');[/php] Первая запись успешна, проверил в браузере - login есть. Но hash не добавляется потому что перед ним мы уже передавали headers. Что делать с hash'ом что бы передать его вместе с лоигном? Формировать довухуровневый массив куки? |
|
|
sc2r2bey |
21.3.2011, 17:20;
Ответить: sc2r2bey
Сообщение
#7
|
|
возможно это будет интересно
вот так станут: [php]<? setcookie('login', 'lololo', time() + 60*60*24*30); setcookie('hash', 'fdsfsdfsadfsdf2fds', time() + 60*60*24*30); ?>[/php] если тебе важна проверка и вывод результата установки, то лучше запиши в переменные результат и только после окончания установки всех кук выведи результаты установки, а в твоем коде ты ставишь куку, потом выводишь в браузер сообщение и опять пытаешься ставить кук. вывод, ничему не научился в этой теме! [php]setcookie('login', 'lololo', time() + 60*60*24*30) ? $cookie_login=TRUE : $cookie_login=FALSE; setcookie('hash', 'fdsfsdfsadfsdf2fds', time() + 60*60*24*30) ? $cookie_hash=TRUE : $cookie_hash=FALSE; $cookie_login==TRUE ? print('cookie OK') : print('cookie fuck'); $cookie_hash==TRUE ? print('cookie OK') : print('cookie fuck');[/php] -------------------- программирую web и для we |
|
|
Banderas
|
Сообщение
#8
|
|
У меня при такой записи тоже ставятся
[php]<php ?> print('Выше с десяток строк, из которых как минимум 5 строк вывода информации'); <? setcookie('login', $login, time() + 60*60*24*30); ?> <?php print('Ещё с десяток строк, одна из которых:'); echo "<br/>".'Приветствуем Вас '.$login."<br/>"; ?>[/php] И все прекрасно работает. Хотя написано, что нельзя выводить информацию перед тем, как задаются куки. Или перед setcookie() не должно быть символов. |
|
|
ZiTosS |
22.3.2011, 19:12;
Ответить: ZiTosS
Сообщение
#9
|
|
|
Banderas,
1) Установленные куки появятся только после перезагрузки страницы. 2) Не стоит ничего выводить в браузер до передачи заголовков, конечно это не распространяется при использовании буферизации вывода (функции ob_...) 3) По сообщению #6 тебе правильно сказали. Не надо выводить инфу в браузер, этим ты отсылаешь заголовки клиенту. 4) У меня при такой записи тоже ставятся Возможно у тебя стоит преднамеренная буферизация в настройках сервера. P.s.: А вообще нужно бы разобраться, как же работать с куками. Сервер - одна машина, клиент - другая машина. В основном они общаются посылкой запросов на действия пользователя. Запросил пользователь страницу, происходит:
После того, как сервер установил куки пользователю, т.е. в сформированном ответе передал запрос на установку кукисов. Браузер их выставляет, но данные о них он обратно на сервер не отсылает. Они передадутся на сервер только при последующем запросе страниц ресурса.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Раскладывающееся меню с jquery.cookie.js | 0 | Lion43 | 5406 | 10.10.2012, 2:58 автор: -berluskoni- |
Текстовая версия | Сейчас: 24.4.2024, 6:17 |