2014-03-06 43 views
0

这是一个脚本上周工作但不是现在的情况。我只能认为在Web主机上安装了一个新的(er)版本的PHP,该版本有一个错误。如果这是我的错,我看不出如何。那么,这是一个PHP错误,一个GoDaddy问题,或者是什么?确实会忽略注释字符?

下面只是整个脚本的一部分,但我已经将它缩减为这个名为'a.php'的小失败片段。对于那些失败的,点击提交按钮后,IE会说'这个页面不能显示';其他浏览器也显示失败。 PHP错误日志文件中没有错误。看起来评论字符被忽略。 'allow_url_fopen'为true,但声明不应该是运行脚本的一部分。这是在GoDaddy上的多个共享Linux主机上使用PHP v5.3.24和v5.4.19。我在本地WAMP安装(使用PHP v5.6.0或v5.4.23)上尝试了这些示例,它们都可以正常工作。

请注意,我不得不在下面的示例中将“http”变成“httpX”以获取此发布。

在完整的脚本中,我使用了最后一种方法让它再次工作,即将URL字符串移动到变量中,并将该变量用作函数的参数。

这三个失败:

// commented line at end 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
//file_get_contents('httpX://abc.com'); 

// commented line at beginning 
//file_get_contents('httpX://abc.com'); 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 

// use other commenting characters 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
/*file_get_contents('httpX://abc.com');*/ 

这四个工作按预期:

// remove offending line 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 

// change function name 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
//zile_get_contents('httpX://abc.com'); 

// change from URL to file 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
//file_get_contents(b.txt); 

// set var to URL and use var as argument 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
//$u = 'httpX://abc.com'; 
//file_get_contents($u); 
+0

什么?你真正的问题是什么? – ElefantPhace

+0

@ElefantPhace他有一个上周工作的脚本,现在停止工作,他问脚本中是否有什么不好的东西,他没有看到,他假设评论字符“//”被php忽略 – CodeBird

+0

他们被忽略,他们是评论。他所拥有的只有三个相同的空格。你的预期产出是多少? – ElefantPhace

回答

0

好吧,你的更新是有益的:

正如我所说IE显示“此页面可以不会显示';

FF显示'连接已重置 - 与服务器的连接已重置,而页面正在加载时为 ';

Chrome显示'没有收到数据';

Safari显示空白屏幕。

您的网络服务器未配置或工作正常。

首先,创建一个简单的html页面,不带php,并尝试查看是否可以查看该页面。如果没有看到任何.htaccess文件,可能只是暂时删除它。或者让GoDaddy帮助你。

下面是一个示例页面。说它TEST.HTM并把它放在你的服务器的根目录:

Hello world. 

如果你可以看到一个简单的HTML页面,那么它是一个PHP的问题。尝试一个非常简单的PHP页面。说它test.php的并使它这样的:

<?php echo "Hi from php";?> 

!请确保您的编辑器编码没有设置为使用'BOM'。现在将其设置为简单的ANSI/ASCII。

我知道这可能令人沮丧,但你会得到这个固定的,然后在自己头脑简单的情况下改变自己。

+0

这是一个相当大的网站,有很多页面,大量的MySQL相互作用,大量的JS等,一切工作正常,除了这一个脚本,只有上周开始barfing。正如我所说的,现在通过将func调用中的字符串中的URL arg移动到一个变量中,并将该变量用作file_get_contents调用的arg,现在确实有效。我真的很期待看到其他GoDaddy用户注意到了这一点,或者能够复制它。这是我见过的最奇怪的事情。我同意你的看法,即有一个web服务器的问题,但它似乎与PHP解释器一样。谢谢。 – arrowd

+0

您是否在该页面检查BOM?我的意思是,如果只有一页,那么这个页面非常重要,而实际上并不是GoDaddy。我的2c。 –

1

这是一个Godaddy托管的主要问题。最近,我的一些PHP脚本产生这种不适当的服务器响应。我发出了一张票,当然一个响应被延迟了(不仅仅是服务器)。他们通常的阻碍也是预料之中的。