php项目适用于Linux服务器,但不适用于Windows

时间:2010-12-14 13:01:29

标签: php windows linux header

所以我有两份完全相同的项目。服务器的配置是相同的。该脚本必须将一些数据写入数据库,然后根据写入数据库的数据将用户重定向到具有header()功能的相应页面。

它在Linux服务器上工作正常,但在Windows中它首先尝试重定向,然后写入数据库,这当然不起作用,因为没有写入数据。如果我在Windows版本中注释掉header()函数,它会写入数据库,但不会执行重定向。

两个确切的脚本如何工作如此不同?

编辑:

我不确定如何显示代码,因为它有太多的内容并且它如此分散。但基本上,它只是一个设置header()然后写入db的函数的函数。当它重定向时,它应该选择写入数据库并显示它的数据。

这是一个非常简化的版本。请记住,header是在写入数据库之前设置的。我相信这是罪魁祸首,但我没有编写代码,我无法改变它的架构,因为它在2台Linux服务器上完美运行,我只是不明白如何。我只需要在Windows服务器上运行它。

它使重定向正常,我的意思是它将我发送到它应该发送给我的链接,但它不会写入数据库。但它我注释了header()部分,它写入数据库,但没有进行重定向。

3 个答案:

答案 0 :(得分:0)

尝试添加if语句:

if(mysql_query('...') && mysql_affected_rows()){
   header("Location: redirectScript.php");exit();
}

希望这会有所帮助......

答案 1 :(得分:0)

documentation for the header function声明如下:

  

注意:

     

HTTP / 1.1需要绝对URI作为   论点»位置:包括   方案,主机名和绝对路径,   但有些客户接受相对URI。   你通常可以使用   $ _ SERVER [ 'HTTP_HOST'],   $ _SERVER ['PHP_SELF']和dirname()来   从亲戚那里做一个绝对的URI   一个人自己:

您使用的是相对网址吗? LAMP可能比WAMP更喜欢相对URL。这是一个简单的测试,所以值得一试。

答案 2 :(得分:0)

由于某些原因,我只能在WampServer和PHP 5.2.4上使用它