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

来源:互联网 发布:深圳人工智能产业园 编辑:程序博客网 时间:2024/05/16 08:40

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

1$auth mktime();

替换为:

1$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

1$ext end(explode('.'$tmp));

替换为:

1    $ext end(); 
2$ar explode('.'$tmp);
3$ext end($ar);

继续报错
Warning: end() expects parameter 1 to be array, null given in /data/web/includes/lib_main.php on line 1336
将刚刚的代码改成:

1     $arr=array();
2     $ext end($arr); 
3$ar explode('.'$tmp);
4$ext end($ar);

3、cls_template.php

1$tag_sel array_shift(explode(' '$tag));

替换为:

1$tag_arr explode(' '$tag);
2$tag_sel array_shift($tag_arr);

4、cls_captcha.php

01/**
02 * 构造函数
03 *
04 * @access  public
05 * @param
06 *
07 * @return void
08 */
09function __construct($folder ''$width = 145, $height = 20)
10{
11    $this->captcha($folder$width$height);
12}

移动到:

1/**
2 * 构造函数
3 *
4 * @access  public
5 * @param   string  $folder     背景图片所在目录
6 * @param   integer $width      图片宽度
7 * @param   integer $height     图片高度
8 * @return  bool
9 */

前面
5、admin\includes\cls_sql_dump.php

01/**
02 *  类的构造函数
03 *
04 * @access  public
05 * @param
06 *
07 * @return void
08 */
09function __construct(&$db$max_size =0)
10{
11   $this->cls_sql_dump($db$max_size);
12}

移动到:

1/**
2 *  类的构造函数
3 *
4* @access  public
5 * @param
6 *
7 * @return void
8 */

前面
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

1function __construct()
2{
3    $this->alipay();
4}

放到

1function alipay()
2{
3}

前面




在安装Ecshop的时候,遇到两个问题:



  1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\www\ecshop\install\includes\lib_installer.php on line 31


  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:


  1)将function gd_version()改成static function gd_version()即可。


  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:


$p = new cls_image();
return $p->gd_version();
  2.检测环境的时候提示:是否支持 JPEG是不支持的。


  解决:查看发现有libjpeg.lib库,GD2库也有,都加载了,也都正常。查看ecshop源代码发现install/includes/lib_installer.php中第100行,JPEG写成了JPG,正确的应该是:


$jpeg_enabled = ($gd_info['JPEG Support']        === true) ? $_LANG['support'] : $_LANG['not_support'];
 

为何说Ecshop写错了,因为我打印数组$gd_info的时候,里面的键名是:JPEG Support。而$gd_info数组里的值都是直接调用系统环境变量的。

  3.默认时区问题:Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in D:\X\www\ecshop\install\includes\lib_installer.php on line 225


  解决:方法1,将php.ini里是date.timezone前的";"去掉,改成:date.timezone = PRC;


  方法2,在页头使用 ini_set('date.timezone','Asia/Shanghai');


  方法3,在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');


0 0
原创粉丝点击