打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ecmall页面空白解决方案汇总

页面空白解决方案:
---------------------------------------------------------------------------------------------

1,到php.ini中打开错误报告,将报错信息贴出来
打开错误报告的方法:将error_reporting 设置为  E_ALL,将display_errors 设置为 On
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2,我把temp入面的folder再set 777就可以了....
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3,php,mysql,httpd版本问题
++++++++++++++++++++
httpd版本:
[root@bogon jitong360temp]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Dec  8 2011 18:07:26
++++++++++++++++++++
php版本:
[root@bogon jitong360temp]# php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/sqlite3.so' - /usr/lib/php/modules/sqlite3.so: undefined symbol: sqlite3_stmt_readonly in Unknown on line 0
PHP 5.3.14 (cli) (built: Jun 14 2012 18:25:17)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
www.it165.net
4,其实还有一个可能会造成网页空白… 就是填写账号或密码的时候 要避免:/@这关键词!否则会导致数据库连结失败
看data/config.inc.php可以看到
‘DB_CONFIG’ => ‘mysql://username:password@localhost:3306/databasename’,
他是以/@:作分隔!所以只要用到关键词就会出错

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5,将原有基于 ECMall 2.2 的系统,迁徙到最新的 php 5.3.3 时,出现首页和其它页面都为空白页的情况,调试多次,无果。后查看其 temp/logs/ 下的日志文件,发现是 eccore/model/mysql.php 文件,报时区错误,采用了在 php.ini 中添加时区设置的办法。

在 php.ini 中指定:

date.timezone = Asia/Shanghai

然后,重启 php-fpm ,问题解决。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6,从原理上来讲Ecmall的数据调用是以数据模块+模块类库的方式进行mysql数据调用的,所有数据模块都存储在\includes\models 目录下,这些调用对于初学者来讲是比较复杂的,例如商品的数据调用函数,不能用在店铺的数据调用上,每个数据表都有自己的函数自己的类库和少量的公共类库。因此初学者来讲,调用mysql数据很困难。

我现在讲解一个简单的调用方法能满足95%以上的mysql数据调用请求。足够对ecmall进行二次开发。

例子:

$db = &db(); 第一步赋值数据库类库,

$db->query(sql); 第二步执行mysql 语句;

常用的数据库函数

、得到一行数据

$user=$db->getrow("select * from ecm_member where user_id=111");

print_r($user);

、得到一列数据

$user=$db->getcol("select user_id from ecm_member ");

print_r($user);

、得到所有数据

$user=$db->getall("select user_id from ecm_member ");

foreach ( $user as $row)

{

print_r($row);

}

、得到一个数值

$user=$db->getone("select count(*) from ecm_member ");

echo $user;

、执行sql语句

$db->query("update ecm_member  set user_name='aaa' ");

、得到最后一个ID

$db->query("insert ecm_member  set user_name='aaa' ");

$user_id = $db->insert_id();

echo $user_id;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7,ecmall function db()

2011年9月14日 过滤阳光 发表评论阅读评论   

由于需要把ecmall代码从一台机器复制到其它机器,我把其中的一些文件删除,本人以为tmp下面的文件全是ecmall生成的缓存文件,和程序代码无关的。后来发现,我的想法是错误的。

把代码复制到新的电脑上时,打开页面一片空白,页面上也没任何的错误信息,以为ecmall把错误信息提示全部关闭了,所以在页面上添加了以下代码,显示错误信息:


ini_set("display_error", 1);

error_reporting(E_ALL);

但是还是没有错误信息输出,只能一步一步的往下调试,终于发现原来错误在一个函数function db();这里。没有错误信息,在函数的return前输出有信息,但是在函数调用的后面输出是空白,一时真没解决方案,原因根本找不到错误原因。自己对ecmall也是刚接触,不是很熟悉。于是在qq群里不断的咨询,很多人都不知所以然。最后有一位高手说让我看看ecmall的错误日志,不看不知道,一看吓一跳,错误日志已经写了好多相同的错误信息,原来是我把mysql类的一个query_caches的文件夹给删除了,导致了mysql操作时无法写入缓存代码。而这些错误已经被ecmall给搜集,不显示在页面上了。

还有一点:ecmall有些写法会在php5.3环境下报错,虽然程序仍然可以运行,但是如果错误信息没有屏蔽的话,会有信息显示

    Deprecated: Assigning the return value of new by reference is deprecated

。关闭方法其实很简单,只要把 & 去掉就可以了,如下:


//下面写法在php5.3环境会报错,不影响程序运行

$this->_session =& new SessionProcessor(db(), '`ecm_sessions`', '`ecm_sessions_data`', 'ECM_ID');

//修改成

$this->_session = new SessionProcessor(db(), ecm_sessions`', '`e
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8,ECmall错误:Call to a member function get_users_count() on a no...

已有 49 次阅读2012-4-27 15:04 |
运行控制器程序时出现 Fatal error:Call to a member function get_users_count() on a non-object in /home/dmg/wwwroot/includes/ecapp.base,不得其解,一步步往上找错误吧,发现这里有问题:
  /*
 *前台控制器基础类
*/
 class FrontendApp extends ECBaseApp
{
     function __construct()
     {
        $this->FrontendApp();
     }
    function FrontendApp()
    {
         Lang::load(lang_file('common'));
        Lang::load(lang_file(APP));  //问题就出在这里了
       parent::__construct();

       // 判断商城是否关闭
       if (!Conf::get('site_status'))
     {
           $this->show_warning(Conf::get('closed_reason'));
       exit;
       }

        $this->assign('copyright', Conf::get('copyright'));
        $this->_statistic();
   }
    //省略代码
 }
 看上面code内标红的位置,调用控制器时会去load一个相应的lang文件,如果控制器为example.app.php,对应的需要在lang文件夹下添加同名的example.lang.php文件,这样问题就解决了。
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9.已经测试完毕了,是PHP的兼容性问题,5.3.2不适合ECMALL2.2

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
两种设置MYSQL查询编码的PHP语句
去除ecshop后台最新版本提示信息
解决 PHP+MySQL 出现的中文乱码
PHP登陆页面完整代码
testlink安装步骤
php 连接mysql的步骤
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服