Заголовок PHP не перенаправляется

Мой заголовок не будет перенаправлен. После выполнения кода он просто пуст и не выполняет перенаправление. В файле нет пробелов. Код работает совершенно правильно, кроме перенаправления.

Этот код вызывается формой submit.

if(!empty($_POST['addSubscriber'])){ $name = $_POST['name']; $email = $_POST['email']; if(!empty($name) && !empty($email) && eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[az]{2,3})$", $email) != FALSE){ $conn = connect(); $sql = "SELECT id FROM subscribers WHERE email=?"; if($stmt = $conn->prepare($sql)){ $stmt->bind_param("s", $email); $stmt->execute(); if($stmt->fetch()){ header("Location: http://bcp350.org.uk/index.php?message=1"); } else { $password = md5(uniqid()); $sql2 = "INSERT INTO subscribers(name, email, password) VALUES(?, ?, '$password')"; if($stmt2 = $conn->prepare($sql2)){ $stmt2->bind_param("ss", $name, $email); $stmt2->execute(); if($stmt2->affected_rows == 1) header("Location: http://bcp350.org.uk/index.php?message=1"); } } } } else { header("Location: urlnotallowedbecauseofstackoverflowlimit"); } } 

Related of "Заголовок PHP не перенаправляется"

Согласно документации PHP для заголовка :

Помните, что header () должен быть вызван до отправки любого фактического результата либо с помощью обычных тегов HTML, пустых строк в файле, либо из PHP. Очень распространенная ошибка для чтения кода с функциями include () или require (), функций или другой функции доступа к файлам, а также пробелы или пустые строки, которые выводятся перед вызовом header (). Та же проблема существует при использовании одного файла PHP / HTML

Вы уверены, что на странице не выводится вывод до header вызова?

Если в вашем коде произойдет одно из следующих действий, все вызовы header() будут исключены:

  1. $ _POST ['addSubscriber'] пуст
  2. $ conn-> prepare ($ sql) возвращает ложь
  3. $ conn-> prepare ($ sql2) возвращает ложь
  4. $ stmt2-> affected_rows не сравнивается с 1

Вам нужно добавить некоторую отладку и выяснить, какая из них происходит.

используйте этот код в самом начале вашей php-страницы

 <?php 

ob_start (); ?>