当我尝试使用我的本地主机时,下面这段代码完全正常,但是当我将它上传到我的服务器上时它无法正常工作
$sendquery = "INSERT INTO `message` (`from`, `to`, `subject`, `date`,`message`) VALUES ('".$_SESSION['UID']."', '".$toarray['Uid']."', '$subject','$d', '$message')";
$sendresult = mysql_query($sendquery);
if($sendresult)
{
header('Location: home.php?action=inbox&success=1');
}
else
{
header("Location: home.php?action=inbox&success=2");
}
我的服务器或代码有问题吗?
答案 0 :(得分:1)
也许你在SQL中有错误。
如果您回复某些内容(如错误消息),则无法再更改标题。
标题在回显之前发送,并在此之后设置位置无效。
答案 1 :(得分:1)
在设置“位置”标题之前,请确保代码中没有任何内容开始输出 确保使用绝对网址(根据HTTP specification的要求)
样品:
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/Home.php');
如果是这种情况,您的重定向应该有效。
输出已经开始的一些常见原因:
<?php ... ?>
答案 2 :(得分:0)
localhost和webserver一起存在很多差异。我猜测要在windows
上开发并托管在linux
上的问题。
小写所有标题字符串并在其后停止执行
header("location: home.php?action=inbox&success=2");
exit();