整合Ecshop與Discuz通訊成功,同步登錄、退出不一致

1.ecshop登錄,discuz也登錄,但ecshop退出,discuz卻保持登錄狀態
修改ecshop/includes/lib_common.php
res=calluserfuncarray( func, params); res = call_user_func_array(func,empty( params) ? array(‘0’) : $params); 可以實現ecshop登錄、退出後,discuz也跟着做同樣的動作,但是discuz登錄、退出,ecshop都不能跟着同樣動作。

2.解決discuz和ecshop完全同步:
打開uc_client/data/cache/apps.php發現這裏面只有一個站點,那麼將其複製一份粘貼到下面,改一下相應的信息,如下圖:
!這裏寫圖片描述

3.從ecshop登錄,discuz退出,會出現ecshop沒有退出的現象。由於cookie值域的問題。因爲discuz在退出的時候會用JS調用到這個api來同步退出。
修改ecshop/api/uc.php中的set_cookie函數,約414行替換成以下代碼:
setcookie(‘ECS[user_id]’, ”, time, GLOBALS[‘cookie_path’], GLOBALS[cookiedomain]);setcookie(ECS[username],, time, GLOBALS[cookiepath], GLOBALS[‘cookie_domain’]);
setcookie(‘ECS[email]’, ”, time, GLOBALS[‘cookie_path’], $GLOBALS[‘cookie_domain’]);

4.打開ecshop/includes/modules/integrates/ucenter.php
ucenter(cfg)87 this->is_ecshop = 1;後面添加代碼:
this>cookiepath= cfg[‘cookie_path’];
this>cookiedomain= cfg[‘cookie_domain’];

第468行set_cookie(username=)/cookie/ time = time() - 3600;
setcookie(“ECS[user_id]”, ”, time, this->cookie_path, this>cookiedomain);setcookie(ECS[password],, time, this>cookiepath, this->cookie_domain);
這樣就可以實現完全同步了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章