1

当我在本地主机上尝试时,下面的代码工作得很好,但是当我将它上传到我的服务器时它不起作用

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

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

4

4 回答 4

1

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

样本:

header('Location: http://' . $_SERVER['HTTP_HOST'] . '/Home.php');

如果是这种情况,您的重定向应该可以工作。

输出已经开始的一些常见原因:

  • BOM(字节顺序标记)未正确处理
  • 警告或信息
  • 第一个之前的空格或任何其他 HTML 标记<?php ... ?>
于 2012-04-15T19:48:39.300 回答
1

也许你的 SQL 有错误。

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

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

于 2012-04-15T19:29:33.393 回答
0

本地主机和网络服务器有很多不同之处。我猜这个问题要开发windows和托管在linux.

小写所有标题字符串并在它之后停止执行

header("location: home.php?action=inbox&success=2");
exit();
于 2012-04-15T19:27:19.443 回答
0

查看

var_dump($sendresult); 出口();

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

$发送结果 = 1;

如果($发送结果){

header('位置:home.php?action=inbox&success=1');

} 别的 {

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

}

这对我来说很好。

于 2015-09-09T12:20:51.700 回答