所以我有两份完全相同的项目。服务器的配置是相同的。该脚本必须将一些数据写入数据库,然后根据写入数据库的数据将用户重定向到具有header()
功能的相应页面。
它在Linux服务器上工作正常,但在Windows中它首先尝试重定向,然后写入数据库,这当然不起作用,因为没有写入数据。如果我在Windows版本中注释掉header()
函数,它会写入数据库,但不会执行重定向。
两个确切的脚本如何工作如此不同?
编辑:
我不确定如何显示代码,因为它有太多的内容并且它如此分散。但基本上,它只是一个设置header()
然后写入db的函数的函数。当它重定向时,它应该选择写入数据库并显示它的数据。
这是一个非常简化的版本。请记住,header
是在写入数据库之前设置的。我相信这是罪魁祸首,但我没有编写代码,我无法改变它的架构,因为它在2台Linux服务器上完美运行,我只是不明白如何。我只需要在Windows服务器上运行它。
它使重定向正常,我的意思是它将我发送到它应该发送给我的链接,但它不会写入数据库。但它我注释了header()
部分,它写入数据库,但没有进行重定向。
答案 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上使用它