控制器在http呼叫上不输出任何内容,适用于https呼叫

时间:2015-07-13 12:29:17

标签: codeigniter https

我有一个基于CodeIgniter框架的商业网站。 cart控制器用于生成购物车内容的数据,  并将其加载到两个视图之一:完整购物车页面或其他页面中的侧边栏(在这种情况下,侧车视图通过ajax被调用到指定的div)。

所有这一切都已经开始并且运作良好超过一年了。 三天前,突然之间,购物车页面停止了工作。 “停止工作”我的意思是没有输出到浏览器。

我不知道我的网站上的代码有任何变化,所以我甚至不知道如何开始调试......

我发现的是,当我使用https来调用购物车时,它可以正常运行。所以这个问题只存在于http调用中(尽管到目前为止我使用了http调用并且一切都很好)。

为了使事情变得复杂,如果我对购物车控制器的所有调用强制执行https - 购物车页面运行良好,但是侧车根本没有显示。如果我在购物车功能的所有调用中都使用http,那就是另一种方式:sidecart运行良好,但整页不显示。 我应该说我正在使用一个钩子强制/取消强制ssl,具体取决于uri段,所以我非常希望所有调用mydomain.com/cart来使用相同的协议。

不知道它是否相关,但我的SSL证书在问题出现前几天更新了。托管公司坚持认为没有任何改变,但我不知道我是否可以完全信任他们。

此外,在问题开始的同时,以下消息开始出现在我的error_log中:

[13-Jul-2015 08:48:16 UTC] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 72 bytes) in /home/temphao1/public_html/system/core/Loader.php on line 807

Loader.php中的第807行是:extract($this->_ci_cached_vars);

关于如何开始调试这个奇怪问题的任何指示都将受到高度赞赏!

1 个答案:

答案 0 :(得分:0)

几乎不好意思承认,但找到了答案。

它与https vs http无关。

我有一个页面计数器,它将页面计数的所有数据发送到所有页面,我在php脚本中进行计数,而不是使用MySQL COUNT,而只发送结果到页面......

因此,http购物车停止工作,因为它是最受欢迎的页面,并且计数器数据非常庞大。 https购物车并不经常使用,因此计数器数据不是那么大,而且仍然可以管理。

感谢@sintakonte和@Shaiful Islam指导我朝着正确的方向前进!这正是我需要帮助我找到解决方案的。