PHP标头未重定向

PHP标头未重定向,php,header,Php,Header,我的标题不会重定向。执行代码后,它只是空白,不执行重定向。文件中没有空格。除了重定向之外,代码完全正常工作 此代码由表单submit调用 if(!empty($_POST['addSubscriber'])){ $name = $_POST['name']; $email = $_POST['email']; if(!empty($name) && !empty($email) && eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)

我的标题不会重定向。执行代码后,它只是空白,不执行重定向。文件中没有空格。除了重定向之外,代码完全正常工作

此代码由表单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-]+)*(\.[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");
  }
}

根据以下PHP文档:

记住,在发送任何实际输出之前,必须调用header(),可以是通过普通HTML标记、文件中的空行,也可以是通过PHP。使用include()或require()函数或其他文件访问函数读取代码,并在调用header()之前输出空格或空行,这是一个非常常见的错误。使用单个PHP/HTML文件时也存在同样的问题


您确定在调用
标题之前没有向页面发送输出吗?

如果代码中发生以下任何一种情况,所有对
标题()
的调用都将被忽略:

  • $\u POST['addSubscriber']为空
  • $conn->prepare($sql)返回falsy
  • $conn->prepare($sql2)返回falsy
  • $stmt2->受影响的_行与1不比较

  • 您需要添加一些调试,并找出发生了哪些调试。

    在php页面的最开始部分使用此代码

    <?php
    

    之后调用
    header()
    是否失败?另外,始终调用
    exit()紧接着执行
    标题(“位置:”)
    停止进一步执行当前脚本`在*.php文件中发布的代码之前有什么内容吗?在每次头重定向之后,输入
    exit()
    调用,看看它是否仍然失败。如果没有,则可能是页面下方的错误仍在执行且失败。根据代码逻辑,重定向在任何情况下都不会执行-有2个
    If
    s,当不调用重定向时。此代码段包含的完整php文件可以在这里查看pastebin.com/ha4lqu24此代码段包含的完整php文件可以在这里@Nick查看,但是在
    constants.php
    中如何?您还必须验证该文件中没有空格。