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启用了输出缓冲?但这并没有解决为什么它在一台服务器上工作,而在另一台服务器上不工作的更深层次的问题,不是吗?它使链接和重定向正常,只是不显示任何数据,因为没有写入数据库。