Не могу ли я установить сеанс и файл cookie в том же файле PHP?
Я получаю сообщение об ошибке, если я установил cookie после того, как установил сеанс, сообщив мне, что заголовок уже отправлен.
Если я установил сессию после cookie, я ничего не получаю, но, похоже, не работает.
Короткий ответ – да – вы можете установить данные SESSION и COOKIE в том же файле PHP.
Более длинный ответ:
Вероятно, в вашем случае вы отправили заголовок и / или начали вывод данных клиенту в том же месте, где вы задаете данные SESSION.
См. Руководство по PHP: Cookies для более подробной информации. В частности, цитата:
«Файлы cookie являются частью HTTP-заголовка, поэтому необходимо вызвать функцию setcookie (), прежде чем какой-либо вывод будет отправлен в браузер. Это то же ограничение, что и в заголовке (). Вы можете использовать выходные функции буферизации, чтобы задержать вывод скрипта, пока вы не решили, нужно ли устанавливать какие-либо файлы cookie или отправлять какие-либо заголовки ».
Если вам нужна дополнительная помощь – попробуйте вставить свой пример кода / страницы, с которыми у вас возникли проблемы.
Вы всегда можете установить сеанс для файлов cookie на одной странице. Однако вы всегда должны начинать сеанс или настраивать файл cookie, прежде чем генерировать какой-либо вывод. Сообщение об ошибке, которое вы получаете, связано с тем, что вы эхом отдаете блок HTML или строку перед началом сеанса (например, session_start ()) или устанавливаете файл cookie SetCookie ()).
Более подробное объяснение см. В разделах «описание» в: http://php.net/manual/en/function.setcookie.php
и «Примечания» в: http://php.net/manual/en/function.session-start.php