QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

ECSHOP

关于ECSHOP模板架设的服务器php版本过高报错的解决方法集合

 admin  2015-11-12 22:30:43

1、admin/index.php
admin/sms_url.php
报错:Strict Standards: mktime(): You should be using the time() function instead in /data/web/ledetaoadmin/sms_url.php on line 31

$auth = mktime();
替换为:
$auth = time();

报错:Strict Standards: Only variables should be passed by reference in /data/web/includes/lib_main.php on line 1336

2、lib_main.php
         $ext = end(explode('.', $tmp));
替换为:
         $ext = end(); 
     $ar = explode('.', $tmp);
     $ext = end($ar);
继续报错
Warning: end() expects parameter 1 to be array, null given in /data/web/includes/lib_main.php on line 1336
将刚刚的代码改成:
         $arr=array();
         $ext = end($arr); 
    $ar = explode('.', $tmp);
    $ext = end($ar);

3、cls_template.php

                   $tag_sel = array_shift(explode(' ', $tag));
替换为:
                            $tag_arr = explode(' ', $tag);
                            $tag_sel = array_shift($tag_arr);



4、cls_captcha.php
    /**
     * 构造函数
     *
     * @access  public
     * @param
     *
     * @return void
     */
    function __construct($folder = '', $width = 145, $height = 20)
    {
        $this->captcha($folder, $width, $height);
    }
移动到:
    /**
     * 构造函数
     *
     * @access  public
     * @param   string  $folder     背景图片所在目录
     * @param   integer $width      图片宽度
     * @param   integer $height     图片高度
     * @return  bool
     */
前面

5、admin\includes\cls_sql_dump.php

    /**
     *  类的构造函数
     *
     * @access  public
     * @param
     *
     * @return void
     */
    function __construct(&$db, $max_size =0)
    {
        $this->cls_sql_dump($db, $max_size);
    }
移动到:
    /**
     *  类的构造函数
     *
     * @access  public
     * @param
     *
     * @return void
     */
前面



Strict Standards: Redefining already defined constructor for class chinabank in /data/web/includes/modules/payment/chinabank.php on line 85

Strict Standards: Redefining already defined constructor for class paypal_ec in /data/web/includes/modules/payment/paypal_ec.php on line 96

Strict Standards: Redefining already defined constructor for class shenzhou in /data/web/includes/modules/payment/shenzhou.php on line 81

Strict Standards: Redefining already defined constructor for class ips in /data/web/includes/modules/payment/ips.php on line 82

Strict Standards: Redefining already defined constructor for class balance in /data/web/includes/modules/payment/balance.php on line 79

Strict Standards: Redefining already defined constructor for class alipay in /data/web/includes/modules/payment/alipay.php on line 85

Strict Standards: Redefining already defined constructor for class tenpay in /data/web/includes/modules/payment/tenpay.php on line 83

Strict Standards: Redefining already defined constructor for class post in /data/web/includes/modules/payment/post.php on line 79

Strict Standards: Redefining already defined constructor for class paypal in /data/web/includes/modules/payment/paypal.php on line 82

Strict Standards: Redefining already defined constructor for class tenpayc2c in /data/web/includes/modules/payment/tenpayc2c.php on line 83

Strict Standards: Redefining already defined constructor for class cappay in /data/web/includes/modules/payment/cappay.php on line 81

Strict Standards: Redefining already defined constructor for class bank in /data/web/includes/modules/payment/bank.php on line 79

Strict Standards: Redefining already defined constructor for class kuaiqian in /data/web/includes/modules/payment/kuaiqian.php on line 83

Strict Standards: Redefining already defined constructor for class cod in /data/web/includes/modules/payment/cod.php on line 82

解决办法:
将所有的构造函数放到前面:
如alipay.php

    function __construct()
    {
        $this->alipay();
    }
放到
    function alipay()
    {
    }
前面。

6、Strict Standards: Non-static method cls_sql_dump::get_head() database.php on line 124
2015年07月13日 技术信息 暂无评论 阅读 973 次
Strict Standards: Non-static method cls_sql_dump::get_head() should not be called statically in /public_html/admin/database.php on line 124
这问题和就是:php版本问题 get_head() 以及get_random_name()在老版本都可以用
但是到了PHP5.4以上就Game OVer了。这里发布下修改的地方
/admin/includes/cls_sql_dump.php
在里面找到对应的 get_head()或者 get_random_name()
在前面加上 static 转换成静态就可以了
发下效果代码
static function get_head($path) 
    { 
        /* 获取sql文件头部信息 */ 
        $sql_info = array('date'=>'', 'mysql_ver'=> '', 'php_ver'=>0, 'ecs_ver'=>'', 'vol'=>0); 
        $fp = fopen($path,'rb'); 
        $str = fread($fp, 250); 
        fclose($fp); 
        $arr = explode("n", $str);  

7、ecshop后台数据备份 Strict standards: Non-static method cls_sql_dump::get_random_name() should not be called statically in
Strict standards: Non-static method cls_sql_dump::get_random_name() should not be called statically in D:\wamp\www\yjy_shop\admin\database.php on line 64

这个意思是说非静态方法::cls_sql_dump get_random_name() 



既然这样,那我们就好解决了,找到admin\includes\cls_sql_dump.php 480行



function get_random_name()

{

$str = date('Ymd');



for ($i = 0; $i < 6; $i++)

{

$str .= chr(mt_rand(97, 122));

}



return $str;

}



在前面添加上 static



static function get_random_name()

{

$str = date('Ymd');



for ($i = 0; $i < 6; $i++)

{

$str .= chr(mt_rand(97, 122));

}



return $str;

}



ok,解决


***********


问题还有很多很多,最快的解决方法就是降低php的版本,改成5.2或者其他,这都是php版本不兼容造成的,问题实在是太多了.主要就是php5.4对参数要求更为严格.

一下是网友总结:
发现最新版本的PHP(PHP/5.4.16),有很多兼容问题,总是有报错。其实原因是最新版的更严格。

发现有几个地方:

1)类的静态方法,前面必须有static修饰。不能直接写public function fName(),前面必须加上static,否则报错

2)类的继承extends,子类的方法,如果父类也有,那么必须参数一致,否则也会报错。Strict standards: Declaration of UrlPath::Goods() should be compatible with UrlBase::Goods($rs, $param = Array) in


¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《关于ECSHOP模板架设的服务器php版本过高报错的解决方法集合》发布于石头博客文章,作者:admin,如若转载,请注明出处:https://www.pweb123.com/cms/ECSHOP/578.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序