@nika_fox

Ошибка: Cannot modify headers information — headers already sent. Почему php ругается на header и не открывает страницу?

<?php
 try {
  if (isset($_POST['add']))
  {
          
          $n = $_POST['name_t'];
          $d = $_POST['day_t'];
          $insertorder = mysqli_query($conn, "INSERT into teachers values (default, '$n', '$d')");
          if ($insertorder)
          {
            header("location: index.php");          
          }
    }
  }
    
  catch (Exception $e)
  {
    echo "Error";
  }
 ?>
  • Вопрос задан
  • 201 просмотр
Пригласить эксперта
Ответы на вопрос 4
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Я подозреваю что редактор вставил BOM UTF8 ищите что это такое в гугле.

Лечится использованием редакторов которые не вставляют это в файл.

1eec53edad.jpg
Ответ написан
t-alexashka
@t-alexashka
Сразу пишу legacy код
У вас вылазят какие-то данные раньше чем устанавливаются заголовки. т.е. сначала должны ставиться все заголовки, а потом уже всякие echo. Попытка поставить заголовок после того как какая-то часть страницы уже готова к выводу - получите сообщение - headers already sent.

Попробуйте заменить header(...) на echo 123; и посмотрите будет ли у вас что-то выше этого 123 написано. Возможно warning какой-то, или часть шаблона.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Кодировка файла: UTF8 without BOM
2. Уберите весь вывод до установки всех заголовков.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы