я испытать Предупреждение: Не удается добавить информацию в заголовке - заголовки уже отправлены при попытке разместить header()
session_start()
или setcookie()
после echo
или каких-либо HTML наценки. Но когда я обновил PHP на своем локальном сервере до 5.4.7 (in XAMPP 1.8.1), я больше не сталкиваюсь с этим предупреждением. Это нормально для PHP 5.4.X?PHP 5.4.X способен размещать setcookie() после разметки HTML без предупреждения «Заголовки уже отправлены»?
Я попытался размещения setcookie()
после некоторых текстов и echo
в этом примере:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Cookie Test</title>
</head>
<body>
<h1>Cookie Test</h1>
<?php
if (isset($_COOKIE['test'])) {
echo "<p>{$_COOKIE['test']}</p>";
} else {
echo "<p>No cookie..</p>";
setcookie('test', 'You have a cookie!', time()+300, '/');
}
?>
</body>
</html>
Затем я открываю страницу с помощью локального хоста/что-page.php и обновить ..
Cookie Test
У вас есть печенье!
В моей тестовой среде setcookie()
работает нормально, без предупреждения. Что-то не так с моими настройками? Спасибо.
Win7x64 и XAMPP 1.8.1 использовал
ли вам есть вызов 'ob_start()' где-то? 5.4, конечно, не изменил протокол HTTP. – ceejayoz
должен иметь выходную буферизацию, включенную по умолчанию. in in 'output_buffering =" on "' – Orangepill
Только что отмечен в моем ini, что 'output_buffering = 4096'. Спасибо @Orangepill :) .. Как я могу пометить этот вопрос, как он решил? – weeix