您的位置:首页 > 运维架构

ecshop验证码显示不了怎么办?

2015-07-18 11:45 405 查看
相信大家在使用ecshop模板的时候,很多朋友都会遇到验证码显示不了的问题,特别是做了ecshop二次开发的模板,更容易出现这样的问题,下面最源码来分享一下各种情况的解决办法。

1、(从ECSHOP论坛搜集到的解决方法)

a)、错误原因:

PHP 类,有两种构造函数,一种是跟类同名的函数,一种是
__c**truct()。从PHP5.4开始,对这两个函数出现的顺序做了最严格的定义,必须是 __c**truct()
在前,同名函数在后

b)、解决方法:

调换一下两个函数的前后位置即可。


includes/modules/payment/alipay.php
 为例:

将下面这两个函数的位置互换一下就OK了,__c**truct()在前,alipay()在后<
4000
/p>

2、没有设置显示的解决办法

ecshop对应页面的验证码需要后台设置了显示,前台才能显示出来,具体操作步骤,登录后台,在系统设置-验证码管理里面,把需要显示验证码的页面选择上提交修改就行。

3、设置了,但是显示不了,显示的是一个红叉叉

(1)后台登录页面和前台评论、留言、注册等页面都不显示

这种情况首先排除空间权限和设置问题(不会查看的可以联系空间商处理),如果没有问题,那么用ECSHOP默认的captcha.php页面替换网站根目录下的页面,如果还是不行,请修改includes目录下的init.php代码

if
(!defined('INIT_NO_SMARTY') &&
gzip_enabled())

{

ob_start('ob_gzhandler');

}

else

{

ob_start();

}

把上面这段代码注释掉,然后在后台清除一下网站缓存。

(2)如果后台登录页面的验证码可以显示,只是前台的不能显示

这种情况一般都是网站做了ecshop二次开发造成的,先用ecshop默认语言包里面的common.php文件覆盖网站的(对应目录是languages/zh_cn),记得先备份自己的一份哦,如果还没有好,那么再把includes目录下的lib_goods.php、lib_order.php、lib_common.php、lib_main.php、lib_insert.php等可能修改过的文件用默认的替换一下,一般只要覆盖了修改过并且存在错误的文件,验证码就会显示正常了,正常过后,再逐步确定到是哪一个文件有错,把错误代码找到,恢复了就行了。

(以上操作过程中,如果你网站有修改过对应文件,覆盖前一定记得备份)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: