PHP无法处理请求
这是我的代码,不太清楚为什么它不起作用,但无法处理。我可以正确处理phpinfo()。PHP无法处理请求
<?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");
}
?>
从PHP文档,
“记住header()函数被发送的任何实际输出之前,必须被调用,或者通过正常的HTML标记,空行在文件中,或从PHP,它是使用include或require函数或其他文件访问函数读取代码时出现的一个非常常见的错误,并且在调用header()之前输出了空格或空行,使用单个PHP/HTML文件时也存在同样的问题。 “
如果你真的想要那些消息,你可以将它们设置为$_SESSION('statusMessage');
,然后在重定向页面检查它是否设置,回显出某些内容并将它们设置为未定义。
另请注意,请确保输入在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;
}
这将是我只是想让它首先工作。 – Nathan
Oki doki,我会用一些代码更新答案(: –
尝试每个'头之前除去回波语句()'呼叫的任何实际输出之前被调用。当您想要重定向页面时显示任何消息是一种不好的做法。另外,根据您的PHP错误设置,它可能会引发错误。 – Ibrahim
您是否收到任何错误?如果没有,在PHP脚本的最上面添加这些行,ini_set('display_errors',1); error_reporting(E_ALL);'看看它是否会产生任何错误。 –
这不是一个错误的做法。在使用header命令重定向呼叫之前,不能发送客户端数据。 –