首 页  >>  E商学院  >>  zencart百科  >>  zencart1.38/1.39在php5.3环境中出现错误怎么办

zencart1.38/1.39在php5.3环境中出现错误怎么办

今天用一个兰亭模板在本地环境试了试,竟然意外的出现了问题。后来一步步解决到最后,终于解决了所有麻烦。

兰亭模板程序是1.38的,而我的php环境是5.3的,用的是wampserver.

其中出现的最大几个问题。

1,网站前台打不开,或者打开前台后空白

主要错误:后台开启了gzip压缩,去数据库把压缩设为0

首先打开错误提示!然后根据提示可以判断错误的轻重缓急。

Fatal error这个就是我首先的目标了,大多提示:Fatal error: Cannot redeclare date_diff() in xxx

然后还有一大堆的Deprecated错误。

解决方法:

找到文件includes/application_top.php

  1. define(‘STRICT_ERROR_REPORTING’, true);   
  2. if (defined('STRICT_ERROR_REPORTING') && STRICT_ERROR_REPORTING == true) {   
  3.   @ini_set('display_errors', '1');   
  4.   error_reporting(E_ALL^E_NOTICE^E_DEPRECATED);   
  5. else {   
  6.   error_reporting(0);   
  7. }  

 

类似这个代码的地方,上面是我已经修改后的,可以参照。

2,然后还有一个错误是致命的。提示Fatal error: Cannot redeclare date_diff() in

打开文件includes/functions/functions_general.php

 

  1. if(!function_exists('date_diff')){   
  2.   function date_diff($date1$date2) {   
  3.   //$date1  today, or any other day   
  4.   //$date2  date to check against   
  5.   
  6.     $d1 = explode("-"$date1);   
  7.     $y1 = $d1[0];   
  8.     $m1 = $d1[1];   
  9.     $d1 = $d1[2];   
  10.   
  11.     $d2 = explode("-"$date2);   
  12.     $y2 = $d2[0];   
  13.     $m2 = $d2[1];   
  14.     $d2 = $d2[2];   
  15.   
  16.     $date1_set = mktime(0,0,0, $m1$d1$y1);   
  17.     $date2_set = mktime(0,0,0, $m2$d2$y2);   
  18.   
  19.     return(round(($date2_set-$date1_set)/(60*60*24)));   
  20.   }   
  21.   }  

 

像上面代码那样,加个判断语句,就解决了

3,如果还有错误。提示Fatal error: Multiple access type modifiers are not allowed

就是这个地方的问题了includes/classes/ssu/cores/parser.php

protected static function getClass() {


点击次数:428  发布日期:2014-05-22  【打印此页】  【关闭