PHP7中文手册2018 带注释 最新chm版
说明:UCenter是discuz自身带的,不是独立安装的UCenter,其实都一样
phpcmsv9 discuz ucenter这三个的整合以及整合时出现的问题在之前的一篇文章说过了,这里只要说的是如何把ecshop在整合进去
链接:http://www.3qphp.com/php/kaiyuan/18.html
因为phpcms和discuz已经整合到了UCenter中,所以这里只说说ecshop和UCenter之间的整合和容易出现的问题
ecshop和UCenter之间的整合过程网络上有大量的文章,我这里在说过程之前先把常出现的问题一下
一、ecshop和UCenter整合失败的问题以及解决办法
整合结束发现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整合过程
这个网络文章比较多,后期在补充