我的标题不会重定向。代码执行后,它只是空白,不执行重定向。文件中没有空格。除了重定向之外,代码完全正确。
此代码由表单提交调用。
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-]+)*(\.[a-z]{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");
}
}
答案 0 :(得分:8)
根据header的PHP文档:
请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include()或require(),函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题
您确定在致电header
之前没有向该页面发送输出吗?
答案 1 :(得分:3)
如果您的代码中出现以下任何情况,则会绕过对header()
的所有来电:
您需要添加一些调试并找出其中的哪些正在发生。
答案 2 :(得分:-1)
在php页面的最开头使用此代码
<?php
ob_start(); ?&GT;