Предупреждение об обновлении заголовка PHP - PullRequest
2 голосов
/ 27 мая 2010

У меня есть этот код:

<?php
session_start();
echo "".$_SESSION['eventnum']."";
$urlRefresh = "testremot.php";
header("Refresh: 5; URL=\"" . $urlRefresh . "\"");
?>

, но заголовок не работает, и при попытке запустить этот код появляется это предупреждение:

Предупреждение: невозможно изменить заголовокинформация - заголовки, уже отправленные (вывод начался с C: \ xampp \ htdocs \ remot \ testremot.php: 3) в C: \ xampp \ htdocs \ remot \ testremot.php в строке 5 **

Можете ли вы помочь мне?

Ответы [ 5 ]

2 голосов
/ 27 мая 2010

Хорошо, давайте посмотрим, что у вас есть в line 3:

echo "".$_SESSION['eventnum']."";

Очевидно, что вы генерируете вывод (echo) в этой строке, и эта строка появляется перед тем, как вы вызываете header.
Переместить его ниже header:

session_start();
$urlRefresh = "testremot.php";
header("Refresh: 5; URL=\"" . $urlRefresh . "\"");
echo "".$_SESSION['eventnum']."";

Но обратите внимание (из Википедия ):

W3C Рекомендации по доступу к веб-контенту (7.4) не поощряют создание автоматически обновляемых страниц, поскольку большинство веб-браузеров не позволяют пользователю отключать или контролировать частоту обновления.

2 голосов
/ 27 мая 2010

Вы не можете ничего повторить до выдачи заголовка. Если вы ДОЛЖНЫ, тогда единственное решение - сделать буферизацию вывода.

1 голос
/ 27 мая 2010

Не используйте заголовок Refresh. И не показывать ничего 5 секунд. Это ошибка юзабилити. Создайте страницу vieweventnum.php и используйте заголовок Location, чтобы привести туда пользователя

1 голос
/ 27 мая 2010
<?php
  session_start();
  $urlRefresh = "testremot.php";
  header("Refresh: 5; URL=\"" . $urlRefresh . "\"");
  echo "".$_SESSION['eventnum']."";
?>

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

0 голосов
/ 27 мая 2010

basma, удалите все пробелы перед <?php или любую строку перед тегом php. этот код должен работать правильно, если перед открытием нет пробела или другого символа <?php

...