Мой заголовок не будет перенаправлен. После выполнения кода он просто пуст и не выполняет перенаправление. В файле нет пробелов. Код работает совершенно правильно, кроме перенаправления.
Этот код вызывается формой 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"); } }
Согласно документации PHP для заголовка :
Помните, что header () должен быть вызван до отправки любого фактического результата либо с помощью обычных тегов HTML, пустых строк в файле, либо из PHP. Очень распространенная ошибка для чтения кода с функциями include () или require (), функций или другой функции доступа к файлам, а также пробелы или пустые строки, которые выводятся перед вызовом header (). Та же проблема существует при использовании одного файла PHP / HTML
Вы уверены, что на странице не выводится вывод до header
вызова?
Если в вашем коде произойдет одно из следующих действий, все вызовы header()
будут исключены:
Вам нужно добавить некоторую отладку и выяснить, какая из них происходит.
используйте этот код в самом начале вашей php-страницы
<?php
ob_start (); ?>