PHP无法处理请求

时间:2017-05-14 15:16:48

标签: php

这是我的代码,不太确定为什么它不起作用但无法处理。我可以正确处理phpinfo()。

<?php

include("tools.php");
$username = $_POST["uname"];
$email = $_POST["email"];
$pasword = $_POST["pword"];

if(isset($username) and isset($email) and isset($password)){
    if(add_user_database($username, $email, $password) == TRUE){
        echo "You've been added!!!";
        header("location:login.php");
    }else{
        echo "<script>alert('Error has occurd please contact " . 
                            "support or try again later');</script>";
        header("location:register.php");
    }
}else{
  echo "<script>alert('Please fill in all forms');</script>";
  header("location:register.php");
}
?>

2 个答案:

答案 0 :(得分:0)

来自php文档,

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

你不应该在那里需要回声,如果你真的想要那些消息,你可以将它们设置为$_SESSION('statusMessage');,然后在重定向页面检查它是否已设置,回显一些东西来显示它,以及将它们设置为undefined。

此外,请确保输入在add_user_database() !!

中进行了清理

编辑:

有用的提示

在检查登录脚本中:

if(add_user_database()){
  $_SESSION['addUserStatus'] = "Success, you have been added, woo!";
  header("Location: someOtherPage.php");
}else{
  $_SESSION['addUserStatus'] = "Error! Please contact support for assistance!");
  header("Location: someOtherPage.php");
}

在其他一些页面中:

if(isset($_SESSION['addUserStatus']){
  echo "<script>showLoginMessage('" . $_SESSION['addUserStatus'] . "')</script>";
  $_SESSION['addUserStatus'] = undefined;
}

答案 1 :(得分:0)

标头已发送错误 看着 http://php.net/manual/en/function.header.php

  

请记住,在发送任何实际输出之前必须调用header()