@ivasenkoartem

Не работает переадресация через header?

Есть код и в конце переадресация. Переадресация выдает ошибку.
КОД PHP
<?php 
  // Подключение к БД
  require_once 'connect_db.php'; 

  // Вывод значений с формы
  $login = trim($_POST['login']);
  $email = trim($_POST['email']);
  $password = $_POST['password'];
  $password_retry = $_POST['password_retry'];
  
  // Проверка на ошибки
  $errors = array();
  if ($login == "") {
    $errors[] = "Введите логин!";
  }

  if (count(getUsers('login', $login)) > 0) {
    $errors[] = "Данный логин уже занят! Пожалуйста выберите другой!";
  } 

  if ($email == "") {
    $errors[] = "Введите email!";
  }

  if (count(getUsers('email', $email)) > 0) {
    $errors[] = "Данный email уже занят! Пожалуйста выберите другой!";
  } 

  if ($password == "") {
    $errors[] = "Введите пароль!";
  }
  if ($password != $password_retry) {
    $errors[] = "Пароли не совпадают!";
  }


  // Добавление новой пользователя (записи)
 if (count($errors) == 0) {
   connectDB();
    global $mysqli;
    $mysqli->query ("INSERT INTO `users` 
      (`id`, `login`, `email`, `password`) 
      VALUES 
      (NULL, '$login', '$email', '$password')");
  closeDB();
 }


  // Функция для проверки повторений по определенному столбцу и записи
  function getUsers($field, $value) {
    global $mysqli;
    connectDB();
      $result = $mysqli->query("SELECT * FROM `users` WHERE `$field`='$value'");
    closeDB();
    return $result->fetch_assoc();
  }

  for ($i=0; $i < count($errors); $i++) { 
    echo $errors[$i]."<br>";
  }

  header('Location: /registration.php');

 ?>
Ошибка
Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/reg/action/registration.php:59) in /Applications/MAMP/htdocs/reg/action/registration.php on line 62
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 2
Machez
@Machez
Бу!
Хедеры всегда должны отправляться клиенту первыми. ДО вывода любой информации
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
ob_start();

echo("text 1");
echo("text 2");
header("Header: Text");

ob_end_flush();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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