php项目可以在linux服务器上工作,但不能在windows上工作

php项目可以在linux服务器上工作,但不能在windows上工作,php,windows,linux,header,Php,Windows,Linux,Header,所以我有两份完全相同的项目。服务器的配置是相同的。脚本必须将一些数据写入数据库,然后根据写入数据库的数据,使用header()函数将用户重定向到相应的页面 它在Linux服务器上运行良好,但在Windows中,它尝试先重定向,然后写入数据库,当然,这不起作用,因为没有写入数据。如果在Windows版本中注释掉header()函数,它会写入数据库,但不会重定向 两个完全不同的脚本如何工作 编辑: 我不知道如何显示代码,因为代码太多太分散了。但基本上,它只是一个设置头()的函数,然后是一个写入db的

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

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

两个完全不同的脚本如何工作

编辑:

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

这是一个非常简化的版本。请记住,
标题是在写入数据库之前设置的。我认为这是罪魁祸首,但我没有编写代码,也不能改变它的体系结构,因为它可以在2台Linux服务器上完美地工作,我只是不明白怎么做。我只需要让它在Windows服务器上工作


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

尝试添加类似以下内容的if语句:

if(mysql_query('...') && mysql_affected_rows()){
   header("Location: redirectScript.php");exit();
}
希望这对……有所帮助。

声明如下:

注:

HTTP/1.1需要一个绝对URI作为 参数到»位置:包括 方案、主机名和绝对路径, 但有些客户机接受相对URI。 你通常可以使用 $\u服务器['HTTP\u主机'], $\u服务器['PHP\u SELF']和dirname()到 从相对URI生成绝对URI 一个你自己:


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

出于某种原因,我只让它在WampServer和PHP5.2.4上工作。

您应该将问题归结为一行或一块代码,然后发布它。如果没有它,就不可能提供良好的信息。他们是否运行相同的web服务器,在相同的版本,使用相同的选项?你能给我们展示一些代码吗?尤其是您提到的注释掉的头代码。
它首先尝试重定向,然后写入数据库
;你能详细说明一下吗?当页面已重定向时,原始脚本是否继续?似乎不太可能。header()调用被缓冲,直到生成第一个输出或脚本停止。也许您已经通过php.ini启用了输出缓冲?但这并没有解决为什么它在一台服务器上工作,而在另一台服务器上不工作的更深层次的问题,不是吗?它使链接和重定向正常,只是不显示任何数据,因为没有写入数据库。