проблема с setcookie - PullRequest
       26

проблема с setcookie

2 голосов
/ 15 марта 2010

есть одна мысль, я все равно не могу понять (((( когда я пытаюсь установить cookie (он находится в строке 28 в login.php), браузер возвращает мне ошибку !!!

Невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался с C: \ xampp2 \ htdocs \ video \ index.php: 9) в C: \ xampp2 \ htdocs \ video \ login.php в строке 28

но в строке 9 в индексе php у меня нет заголовка !!! есть тег !!!
я не могу понять это !!! может кто-нибудь подсказать мне, почему он возвращает мне такую ​​ошибку?

Ответы [ 5 ]

3 голосов
/ 15 марта 2010

Cookies отправляются в виде заголовков. Из документации PHP для setcookie :

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

Кроме того, если ваша страница сохранена в формате UTF-8, спецификация (метка порядка байтов) не позволит вам устанавливать какие-либо заголовки, поскольку она считается выходным. См. http://bugs.php.net/bug.php?id=22108. Чтобы обойти это, вам нужно сохранить файл без метки порядка байтов.

См. Также: Метка порядка байтов # Нежелательные спецификации - Википедия

1 голос
/ 29 августа 2011

сначала устанавливает cookie перед любыми тегами html (вывод a.k.a), даже перед объявлением ! DOCTYPE html или head , информации заголовка и т.п. например, ваш файл может выглядеть примерно так:

<?php setcookie("oreo", $value, time()+(60*60*24*30));?>
<?php setcookie("vanilla_wafer", $wafer, time()+(60*60*24*30));?>
<!DOCTYPE html>
<head>
    <title>Cookies and Milk</title>
</head>
<body>
<p>yo</p>
</body>
</html>
1 голос
/ 15 марта 2010

Вы не можете ничего распечатать на сайте перед отправкой заголовка.

0 голосов
/ 15 марта 2010

Вы должны иметь функции заголовка в самом верху вашего приложения.Как в основном, первые строки для header ();

0 голосов
/ 15 марта 2010

Пожалуйста, напишите код. Эта ошибка означает, что что-то уже отправлено (также может быть эхо, уведомление об ошибке и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...