2011-09-19 96 views
0

我有由以下结构的PHP文件:没有加载PHP文件正确

<html>... headers, scripts & styling 
... some html here 
<?php 
    if($_GET['v'] == 1) 
    { 
?> 
    ... html code here ... 
<?php 
    } 
    else 
    { 
?> 
    ... html code here ... 
<?php 
    } 
?> 
</html> 

有时文件只是用来加载一半,例如,如果v=1什么会加载到屏幕(如果我View Source也检查)是这样的:(相对于我上面的例子)

<html>... headers, scripts & styling 
... some html here 
    ... html cod 

正如你所看到的,代码只是随机切断。这并不是什么明显的例子,如循环或任何东西。它发生在HTML代码的中间,而不在<?php ?>标签内。

它看起来好像服务器只是决定停止在那里,然后无缘无故的沟通。它也发生在每次不同和随机的地方,有时加载完美。

它也只发生在我的共享主机帐户,而不是我的localhost

有没有什么简单的事情可能导致这种情况? 以前有没有人遇到过这个?

+0

你能分享一个链接,以便我们可以用我们自己的浏览器测试它并运行数据包捕获工具吗? – phihag

+0

不,抱歉 - 它位于网络应用程序的控制面板内。 – LouwHopley

+0

然后你可以创建一个pcap转储(例如[wireshark](http://wireshark.org))并上传它? – phihag

回答

2

您的代码会产生一个警告(显然沉默),并在这里失败:

if($_GET['v'] == 1) 

如果没有v参数在查询字符串给出。

做这样的:

if(isset($_GET['v']) && $_GET['v'] == 1) 

如果您运行的是旧版本的PHP,你必须让两个独立的,如果每个的两个条件语句。

+0

不,如果它是静默错误,它会跳转到其他地址 – genesis

+0

我认为这取决于错误报告配置。 – thwd

+1

没有。当错误被抑制时,它被抑制,但仍然有效。这只是一个通知/警告,脚本不会停止 – genesis

2

确保您已打开display_errors

ini_set('display_errors',1); 

只是为了确保没有什么可怕的错误。

+0

会尽快试用,谢谢。 – LouwHopley

+0

Ag人。现在它不再提出这个问题了 - 当客户使用它时就害怕它发生。 – LouwHopley

+0

这很正常。如果您的显示器错误处于非活动状态,如果出现错误,代码执行将停止。您还应该检查代码源,而不是只查看生成的可视化输出。有时并取决于浏览器可能不会显示错误。 –