Возможно, вы уже отправили какой-то вывод через ваш скрипт (который может быть просто пробелом), и в этом случае вы больше не можете отправлять заголовки.
Проверьте это с помощью этого кода:
if (headers_sent()) {
die("Error: headers already sent!");
}
else {
header("Location: MyBooks.php", true);
exit();
}
Если при этом выдается ошибка, то перед вызовом header
необходимо убедиться, что вывод вообще не выводится.Проверьте, что:
- Вы вообще ничего не
echo
(или иным образом не выводите HTML) до header
вызова - До
<?php
абсолютно нет пробеловначальный тег или конечный тег ?>
(если имеется) в ваших сценариях PHP
Обновление: как проверить заголовки HTTP с помощью Chrome
- Выберите вкладку Сеть
- Выберите Документы в меню чуть выше консоли, чтобы сузить список справа
- Выберите единственный ресурс, которому соответствует фильтриз списка справа (
http://localhost/
здесь) - Перейдите на вкладку Заголовки