PHP头文件不适用于服务器,但在本地主机上运行良好

PHP头文件不适用于服务器,但在本地主机上运行良好,php,header,Php,Header,当我在本地主机上尝试时,下面的代码工作得非常好,但当我将其上载到服务器时,它就不工作了 $sendquery = "INSERT INTO `message` (`from`, `to`, `subject`, `date`,`message`) VALUES ('".$_SESSION['UID']."', '".$toarray['Uid']."', '$subject','$d', '$message')"; $sendresult = mysql_query($sendquery);

当我在本地主机上尝试时,下面的代码工作得非常好,但当我将其上载到服务器时,它就不工作了

$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");
}

这是我的服务器还是代码有问题?

本地主机和Web服务器有很多不同之处。我猜这个问题将在
windows
上开发,并托管在
linux

将所有头字符串小写,然后停止执行

header("location: home.php?action=inbox&success=2");
exit();

可能您的SQL中有错误

如果您回显某些内容(如错误消息),则无法再更改标题


头在回显之前发送,在回显之后设置位置无效。

在设置“位置”头之前,确保代码中没有任何内容开始输出。
确保使用绝对URL(根据要求)

样本:

header('Location: http://' . $_SERVER['HTTP_HOST'] . '/Home.php');
如果是这种情况,重定向应该可以工作

输出已启动的一些常见原因:

  • BOM(字节顺序标记)处理不正确
  • 警告或信息
  • 第一次
  • 检查

    变量转储($sendresult);退出()

    启用错误报告。您可能还有其他错误。 顺便说一下

    $sendresult=1

    如果($sendresult){

    标题('Location:home.php?action=inbox&success=1')

    }否则{

    标题(“Location:home.php?action=inbox&success=2”)

    }


    这对我来说很好。

    您是否看到SQL之后有错误?如果您回显某些内容(如错误消息),则无法再更改标头。您的服务器是否连接到同一个数据库?我修复了您的代码块。请参阅如何在stackoverflow上发布代码。如果您显示了实际错误,这将有所帮助。感谢您的回复问题是sql在sql运行后运行良好页面未重定向它停留在dame页面中没有错误消息它只是不重定向页面,但当我在本地主机上时,它会重定向页面服务器它不重定向页面它只是刷新页面谢谢回复问题是sql在sql运行后运行良好页面没有重定向它停留在dame页面中没有错误消息它只是不重定向页面但当我在本地主机上时它重定向是服务器上的页面它不重定向页面页面它只是刷新页面谢谢你是的你是关于windows和linux的wright但我只是用小写字母尝试了它仍然没有重定向我的服务器在ubuntu上我用小写字母和退出都尝试了它仍然没有重定向页面谢谢你错误是我在设置位置之前就已经开始输出了,但是有什么方法可以少一点吗在php中,我甚至可以在开始页面输出后给出位置,下一个问题是它在本地hostNo上如何工作。如果您仔细研究一下HTTP协议,就会明白,发送一个带有“Location:”头的30倍状态代码并仍然写入输出(HTTP正文)是没有意义的。输出是完全无用的,因为浏览器所做的只是请求一个新的URL。您应该改进代码,以便在开始输出之前完成所有可能导致重定向的操作。