我正在使用Magento 1.5.0.1,在结帐时偶尔会出现“调用非对象上的成员函数getId()”错误。
客户将多次尝试使用相同的详细信息结帐,错误消息“Call to a member function getId() on a non-object”将继续出现,但几秒钟或几分钟后,错误将停止,结帐将完成。
这种情况并不是100%都会发生。
我已经检查过: 1) Apache错误日志是干净的,apache有大量空闲的系统资源。根据官方指南针对Magento进行了优化。2) MySQL错误日志干净,mysql有大量空闲的系统资源。根据官方指南针对Magento进行了优化。3) PHP错误日志只会显示‘调用非对象上的成员函数getId()’,没有任何迹象表明PHP耗尽了内存,即内存耗尽的典型错误--内存分配失败。4)执行了所有其他Magento优化:缓存、编译、APC、PHP限制为256mb。5) APC有大量的系统资源费用。6) CPU使用率从未达到25-50%,RAM使用率仅为40%- 50%,超过50%的空闲空间!
还可以得到“对非对象的成员函数getStoreId()的调用”错误消息。
我想尽我所能做更多的事情!在50个订单中,它将搞砸大约2-3个订单,即客户尝试在5-10分钟内结账约5-10次。
什么可以被锁定?
发布于 2012-04-24 09:54:18
当我分析我的Magento安装(1.4.2)上的类似错误时,我能够把它放在一起,这是基于whois和nslookup搜索的针对网站的某种黑客尝试。人(机器人?)在没有正确初始化会话的情况下下订单,因此不存在为Id所建立的存储(或任何其他)对象。这应该被标记为错误,这样他们就可以正确地处理这种情况,并重新初始化会话或执行一些其他操作,以更好地防止人们探查表单的逻辑。
此外,代码中还存在某种类型的错误,有时客户可能会下订单购买0美元的商品。在每种情况下,都是一个普通的客户,当他打电话给我们时,都会感到惊讶,并向我们提供了用于手动支付处理的CC详细信息。清除缓存和每天的第一件事对此很有帮助。
https://stackoverflow.com/questions/10259583
复制相似问题