知道为什么这段PHP代码让我的脚本挂起了吗?

时间:2014-10-04 19:16:38

标签: php

感谢您抽出时间阅读本文。我不是程序员,但凭借我有限的技能,我能够确定在几乎每一页开头调用的这个函数都会使我们的商店POS脚本失败。当我们为这个PHP应用程序转到我们的URL时,我们只得到一个空白页面。当注释掉对此函数的调用时,页面加载就好了。

值得注意的是,我们的代码没有任何变化,并且已经使用了3年多。几天前刚停止工作,我们的虚拟主机无用。他们无法告诉我是否对我们的服务器环境进行了任何更改,因此我不知道从哪里开始查找信息。我的同事怀疑他们可能已经更改了正在使用的PHP版本,但我不知道在此处列出的版本之前可能有哪个版本。

服务器信息 -Apache版本2.2.29

-PHP版本5.4.33

-MySQL版本5.5.37-cll

-Architecture x86_64

- 操作系统linux

// new version for SEO htaccess short url's
Function MakeSecure(){
    if($_SERVER['HTTPS'] != "on"){
        $URI = $_SERVER['REQUEST_URI'];
        $strSiteLocation = "https://" . str_replace("/","",DOMAIN) . $URI;
        header("Location: " . $strSiteLocation );
    }
}

2 个答案:

答案 0 :(得分:1)

除非您已将DOMAIN设置为其他地方的常量,否则它不会在任何地方重定向。既然你说这是代码的顶部,我怀疑是这种情况。

要确认这一点,请通过调用header()(输出到浏览器)或echo()(输出到您的Web服务器日志文件)来替换最终的error_log()调用。这将告诉您它在哪里尝试重定向您;我认为它不会是一个有效的URL。

答案 1 :(得分:0)

因此,PHP从5.3升级到5.4,并且公共类通过引用传递变量,这在5.4中是不允许的。从

改变了公共类中的一行

$cp = fsockopen (SMTP_HOST, SMTP_PORT, &$errno, &$errstr, 1);

$cp = fsockopen (SMTP_HOST, SMTP_PORT, $errno, $errstr, 1);

现在该网站正在加载正常。感谢所有权衡的人!