最新消息: 新版网站上线了!!!

ecshop phpcmsv9 discuz ucenter整合同步登录退出

说明:UCenter是discuz自身带的,不是独立安装的UCenter,其实都一样

phpcmsv9  discuz ucenter这三个的整合以及整合时出现的问题在之前的一篇文章说过了,这里只要说的是如何把ecshop在整合进去

链接:http://www.3qphp.com/php/kaiyuan/18.html


微信截图_20161110151849.png

因为phpcms和discuz已经整合到了UCenter中,所以这里只说说ecshop和UCenter之间的整合和容易出现的问题

ecshop和UCenter之间的整合过程网络上有大量的文章,我这里在说过程之前先把常出现的问题一下

一、ecshop和UCenter整合失败的问题以及解决办法

  1. 整合结束发现UCenter中提示,ecshop应用的通信失败解决办法

     a、UCenter中编辑ecshop,其他参数都不动只修改“应用的主URL”,如果url末尾有"/"去掉,然后在复制“应用的Ucenter配置信息”,粘贴到ecshop/date/config.php 文件的最下面保存

    说明:如果配置中其他项都做过修改,没有进行这个修改,可能会出现ecshop前台登录之后,页面提示数据库连接错误的提示

       b、ecshop登录页面和首页出现下面错误

    PHPStrict Standards: Declaration of ucenter::login() should be compatible with integrate::login($username, $password, $remember = NULL) in \includes\modules\integrates\ucenter.php on line 52 

    PHP Strict Standards: Declaration of ucenter::add_user() should be compatible with integrate::add_user($username, $password, $email, $gender = -1, $bday = 0, $reg_date = 0, $md5password = '') in \includes\modules\integrates\ucenter.php on line 52 

    PHP Strict Standards: Declaration of ucenter::set_cookie() should be compatible with integrate::set_cookie($username = '', $remember = NULL) in \includes\modules\integrates\ucenter.php on line 52

                原因是ecshop的/includes/modules/initgrates/ucenter.php这个文件中的子类,继承的/includes/modules/initgrates/initgrate.php中的父类,继承过程中子类的几个函数的参数和父类中的参数不一致

               解决办法:

                修改/includes/modules/initgrates/ucenter.php 中的login,add_user,set_cookie三个方法如下

                function login($username, $password, $remember = NULL)

                function add_user($username, $password, $email, $gender = -1, $bday = 0, $reg_date = 0, $md5password = '')

                function set_cookie($username = '', $remember = NULL)

                然后返回UCenter中可以看到ecshop,通信成功
       

                ok通信是成功了,可是登录或者退出discuz和phpcms之后没有同步到ecshop怎么办?往下看...

二、discuz phpcms UCenter和ecshop整合之后,没法同步退出或者登录

       1、 如果ucenter退出其他同步的应用没有退出可以看看如下的方案
        在ecshop的/includes/lib_common.php   function uc_call
        这里的 $res = call_user_func_array( $func, $params ); 出错了
        替换成这样 ,就可以了
        if( !is_array($params)){
        $res = call_user_func( $func, $params );
        }else{
        $res = call_user_func_array( $func, $params );
        }

        2、ecshop退出时dz和phpcmsv9无法退出,解决办法同上

        3、discuz和phpcms登录或者退出,ecshop不同步

            原因:原因就是cookie的名称前缀不一致,最后导致两边使用的cookie名称不一样,dz实际上没有摧毁ecshop的cookie

            解决办法:

        //查看discuz的config\config_global.php
        查看cookie前缀的设置,
        例如$_config['cookie']['cookiepre'] = 'V5s0_';
       //ecshop的api\uc.php
        在文件前面添加一个变量$cookiepre = 'V5s0_';值要保证和dz的cookiepre一致

三、ecshop和UCenter整合过程

        这个网络文章比较多,后期在补充

              

                







转载请注明:谷谷点程序 » ecshop phpcmsv9 discuz ucenter整合同步登录退出