2010-12-14 142 views
0

所以我有两个完全相同的项目副本。服务器的配置是相同的。该脚本必须将一些数据写入数据库,然后根据写入数据库的数据将用户重定向到具有header()函数的适当页面。php项目在linux服务器上工作,但不在windows上

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

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

编辑:

我不知道我该怎么办显示代码,因为有这么多的它,它是如此分散。但基本上,这只是一个函数,它设置了header()以及写入db的函数。当它重定向时,它应该选择写入数据库的数据并显示它。

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

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

+6

您应该将问题分解为一行或一段代码,然后发布。没有它,就不可能提供好的信息 – 2010-12-14 13:02:56

+0

他们是否在相同的版本上运行相同的Web服务器,具有相同的选项? – 2010-12-14 13:03:04

+2

你能告诉我们一些代码吗?特别是你提到的标题代码,你注释掉了。 – JohnSmith 2010-12-14 13:07:32

回答

0

由于某些原因,我只能在WampServer和PHP 5.2.4上运行。

0

尝试增加一个if语句是这样的:

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

希望这有助于...

+0

但是这并没有解决为什么它在一台服务器上工作的更深层次的问题,而不是在另一台服务器上工作呢? – 2010-12-14 13:16:14

+0

是真的,但可能导致他在一条好路径上。 – Catalin 2010-12-14 13:19:12

0

documentation for the header function状态如下:

注:

HTTP/1.1 »位置:包括需要一个绝对URI作为 参数方案,主机名和绝对路径, 但有些客户端接受相对URI。 通常可以使用 $ _ SERVER [ 'HTTP_HOST'], $ _ SERVER [ 'PHP_SELF']和目录名()来 从相对 一个自己做的绝对URI:

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

+0

它使链接和重定向好,它只是不显示任何数据,因为没有写入数据库。 – donkapone 2010-12-14 18:44:58

相关问题