![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| wood |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 1.5.2006 Репутация: нет Всего: нет |
Всем добый день.
начал изучать РНР, пытался разобраться с куками. В хелпе и в книгах написано, что куки отправляются до первого вывода в барузер. Решил проверить на ошибку и отправить после вывода, и браузер не выдал ошибки куки отправились, после обновления страницы появились в массиве. Подскажите почему это происходит? вот код:
результат: hello, user Array ([user] => root) Это сообщение отредактировал(а) wood - 18.11.2014, 20:28 |
|||
|
||||
| Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Видимо потому, что стоит подавление вывода ошибок. Попробуйте включить её, написав в самом начале скрипта:
Вообще должно быть что-то типа
А т.к. это варнинг, то код отработает. |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
||||
|
||||
| wood |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 1.5.2006 Репутация: нет Всего: нет |
???
Можно по-подробнее. Я отсылаю на сервер, после обновления сервер возвращает назад, если поставить счетчик то он будет увеличиваться. Если бы клиентом не получалось бы ничего или не отправлялось, счетчик не увеличивался. Или я что-то не так понимаю? Но самое главное я так и не могу добиться появления ошибки. Уровень ошибок E_ALL, включил их везде где только можно, но ошибки как не было так и нет. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
у php есть внутренний буфер. пока ваш вывод короткий, буфер не заполнен и не отправляется пользователю сразу, и вы "успеваете" установить куки. т.е. это случайность, связанная с длиной вывода. сделайте вывод длиннее, или вставье перед setcookie() вызов flush(), и ваш счетчик перестанет увеличиваться, т.к. к этому моменту заголовки будут действительно отправлены. правда, и $_COOKIE не заполнится, тут я ошибся
|
|||
|
||||
| wood |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 1.5.2006 Репутация: нет Всего: нет |
Проблема в том, что пример который я разбирал (включая help), в нем короткий код, только setcookie, но ставится пустая строка перед "<?" и все, тут же warning, я уже не говорю про echo. у меня же код отрабатывается в любом случае. И причину никак найти не могу((.
И насколько я понял, заголовки отправляются в браузер до отправки самого контента, так что наверное про переполнение буфера говорить еще рано. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
заголовки и тело ответа - один сплошной текст. упрощенно, добавление заголовков суть приписывание текста в начало ответа, echo - в конец. как только буфер заполнен, он сбрасывается.
то, что происходит до <?php, не важно, т.к. интерпретатором php обрабатывается все, а не только внутри этих тегов почитайте http://php.net/manual/ru/outcontrol.configuration.php и посмотрите что в ваших настройках Добавлено через 4 минуты и 48 секунд причину чего? правильно - устанавливать заголовки до всяких echo и print, либо использовать буферизацию ob_start()/ob_end_flush() или вас интересует вопрос "я все делаю неправильно, но оно все равно работает"? |
|||
|
||||
| wood |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 1.5.2006 Репутация: нет Всего: нет |
Спасибо большое!!!!
Все заработало!!! Точнее не заработало!!!)) Действительно ошибки не сыпались из-за буфера, убрал буфер (сначала отправил flush, а затем изменил в ini ), появились ошибки. А можно уточнить?: получается при буфере рhр успевал размесить (в моем случае вставить) куки в заголовок где они и должны быть?, так как основной контент уже echo-ом начинал формироваться. И вопрос по буферу? его лучше отключить или использовать, а если использовать то размер как по умолчанию 4096? Еще раз спасибо! |
|||
|
||||
| sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
Да-с Использовать Зависит от того для чего вы используете сервер. Если для себя, то все равно, зоть на всю оперативную память ставьте. А на сервере, нужно просчитать так что бы хватило всем пользователям при одновременных запросах. |
|||
|
||||
| wood |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 1.5.2006 Репутация: нет Всего: нет |
Все вопросы сняты!
Всем спасибо!, тему можно закрывать. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
темы тут редко закрываются, но если вы получили ответ на свой вопрос - принято нажимать на ссылку "Пометить как решённый" в верхнем правом углу темы. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |