2012-04-15 79 views
1

下面这段代码时,我尽我的本地主机上,但是当我把它上传到我的服务器不工作PHP头不工作的服务器,但工作本地主机上完全正常

$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

你的SQL后看到一个错误。如果你呼应的东西(如错误消息)你呢?无法再更改标题 – gulyan 2012-04-15 19:26:29

+0

是您的服务器连接到同一个数据库吗? – Rooster 2012-04-15 19:26:32

+0

我修复了您的代码块。请参阅http://meta.stackexchange.com/questions/22186/how-do-i-format-my - 代码块如何发布代码在stackoverflow上 – MitMaro 2012-04-15 19:29:58

回答

0

本地主机和网络服务器有许多不同之处。我猜测这个问题是在windows上开发的,并且在linux上托管。

小写所有的头部字符串和之后

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

谢谢 是的,你是怀特关于Windows和Linux ,但我只是尝试小写,它仍然没有重定向我的服务器是在Ubuntu的 我试着用小写字母和退出仍然没有重定向页面 – user1334969 2012-04-15 19:45:33

1

也许你在SQL错误停止执行。

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

标题在echo之前发送,并且在此之后设置位置不起作用。

+0

感谢您的答复问题是SQL运行良好后,SQL运行的页面没有得到重定向,它保持在dame页面没有错误消息它只是不重定向页面,但当我在本地主机上重定向的服务器上的页面不重定向页面,它只是刷新页面 – user1334969 2012-04-15 19:39:40

1

在设置“位置”标题之前,请确保代码中没有任何内容开始输出。
确保您使用的绝对URL(所要求的HTTP specification

样品:

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

如果是这样的话,您的重定向应该工作。

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

  • BOM(字节顺序标记)之前,你的第一<?php ... ?>
未正确处理
  • 警告或信息
  • 空白字符或任何其他HTML标记
  • +0

    谢谢你的米斯塔克是我已经开始输出之前设置的位置,但有没有办法减少PHP附近,我可以给位置,即使开始输出的页面和下一个疑问如何在本地主机上工作 – user1334969 2012-04-15 20:13:10

    +0

    号。如果你拿一个仔细看看HTTP协议,你会明白,发送带有“Location:”头的30x状态码并仍然写输出(HTTP正文)是没有意义的。输出完全无用,因为浏览器所要做的就是请求一个新的URL。您应该改进代码,以便在开始输出之前完成可能导致重定向的所有内容。 – CodeZombie 2012-04-15 20:23:52

    0

    检查

    var_dump($ sendresult);出口();

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

    $ sendresult = 1;

    如果($ sendresult){

    头( '地点:home.php动作=收件箱&成功= 1');

    } else {

    header(“Location:home.php?行动=收件箱&成功= 2" );

    }

    这对我工作得很好

    相关问题