麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > Discuz > 正文

discuz注冊和登陸流程的(用戶中心同步)

2024-09-11 09:03:13
字體:
來源:轉載
供稿:網友

下面看到一站長分享的關于dz注冊與登錄的一個流程了,包括了用戶中心的同步配置,代碼如下希望對各位同學會有所幫助.

注冊流程

第一步:/source/class/class_member.php: on_register注冊入口,602 左右:

  1. if(!$activation) {//不為空,說明用戶已經注冊過 
  2. //將用戶注冊到用戶中心,調用第二步uc_user_register方法 
  3. $uid = uc_user_register(addslashes($username), $password$email$questionid$answer$_G['clientip']); 

第二步:/uc_client/client.php:uc_user_register 調用將用戶注冊到用戶中心的方法,調用第三步的onregister方法.

第三步:/uc_client/control/user.php: onregister 將用戶注冊到用中心,調用第四步add_user方法

第四步:/uc_client/model/user.php:add_user 將用戶注冊到ucenter返回用戶id

第五步:/source/class/class_member.php,685行 左右,會把用戶信息寫到common_member表,注冊結束.

  1. C::t(‘common_member’)->insert($uid$username$password$email$_G['clientip'], $groupinfo['groupid'], $init_arr); 

登陸流程

第一步:/source/class/class_member.php:on_login 登陸入口,87行左右,調用userlogin方法如下:

  1. $result = userlogin($_GET['username'], $_GET['password'], $_GET['questionid'], $_GET['answer'], $this->setting['autoidselect'] ? ‘auto’ : $_GET['loginfield'], $_G['clientip']); 

第二步:/source/function/function_member.php: logincheck 72行左右 調用 logincheck,如下:

  1. if(!($_G['member_loginperm'] = logincheck($_GET['username']))) { 
  2. showmessage(‘login_strike’); 
  3. //開源軟件:Vevb.com 

第三步:/source/function/function_member.php: userlogin 用戶登陸查詢相關表,第29行-40行左右會用調用uc_user_login方法:

  1. if($isuid == 3) { 
  2. if(!strcmp(dintval($username), $username) && getglobal(‘setting/uidlogin’)) { 
  3. $return['ucresult'] = uc_user_login($username$password, 1, 1, $questionid$answer$ip);// uc_client/client.php 
  4. elseif(isemail($username)) { 
  5. $return['ucresult'] = uc_user_login($username$password, 2, 1, $questionid$answer$ip);// uc_client/client.php 
  6. if($return['ucresult'][0] <= 0 && $return['ucresult'][0] != -3) { 
  7. $return['ucresult'] = uc_user_login(addslashes($username), $password, 0, 1, $questionid$answer$ip); 
  8. else { 
  9. $return['ucresult'] = uc_user_login(addslashes($username), $password$isuid, 1, $questionid$answer$ip); 
  10.  

/uc_client/client.php: 包含uc_開頭的全部方法,例uc_user_login

/uc_client/control/user.php: onlogin 根據條件判斷登陸,114-120 判斷查詢條件查詢出ucenter用戶信息

/uc_client/model/user.php 包含有get_user_by_uid,get_user_by_username 等方法 第50行左右查詢common_member表,如下:

$member = getuserbyuid($return['ucresult']['uid'], 1);

回到/source/class/class_member.php文件on_login方法,第95-106 行左右會根據條件$result['status']==-1,寫common_member表,并查詢出寫入信息:

  1. C::t(‘common_member’)->insert($uid$result['ucresult']['username'], md5(random(10)), $result['ucresult']['email'], $_G['clientip'], $groupid$init_arr); 
  2. $result['member'] = getuserbyuid($uid); 

ps:以上所有方法都會先執行,/source/class/discuz/discuz_application.php: _init_user,所以如果要自己寫checklogin 可以考慮從_init_user 方法入手,如果與自己的平臺做bbs的打通.

注冊可以考慮在第4步做操作,調用自己平臺的注冊接口,注冊用戶,并將用戶id返回,寫入到ucenter.

/uc_client/model/user.php:add_user 方法內,登陸打通可以考慮在 第三步調用uc_user_login 方法前.

1.調用自己平臺接口查詢用戶相關信息

2.查詢ucenter中用戶是否存在

3.如果不存在insert一條數據

4.common_member可以寫也可以不寫,如此時不寫 $result['status']==-1 會在class_member 95-106 行左右寫入

如果在自己平臺處于登陸狀態,在bbs也為登陸狀態,則可以考慮從_init_user 方法入手,做登錄判斷.

無法同步登陸需要注意檢查的地方:

1.ucenter中應用的配置信息是否完全正確,并與目標站后臺的ucenter接口配置信息一致.

2.如果遇到通信成功,但是一邊能登陸一邊無法同步登陸的情況,請首先檢查 uc_client/data/cache/apps.php中的站點信息是否完全.

3.請注意編碼以及程序的BOM頭導致返回信息亂碼的情況.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品一区视频 | 国产免费最爽的乱淫视频a 毛片国产 | 日本综合久久 | 亚洲精品91 | 在线日韩亚洲 | 国产精品免费在线 | 亚洲午夜不卡 | 成人三区四区 | 成年人视频在线免费观看 | 青青草成人av | 一边吃奶一边摸下娇喘 | 日韩一级片 | 中文字幕在线观看免费 | 性高潮一级片 | 黄色av网站免费 | h视频免费看 | 毛片免费观看完整版 | 精品国产九九九 | 日韩美香港a一级毛片 | www久久久久久 | 在线免费观看麻豆 | 久久不雅视频 | www.精品在线 | 国产精品嘿咻嘿咻在线播放 | hdhdhd69ⅹxxx黑人 | 最新av网址在线观看 | 欧美一区二区黄色 | 久久久久久久亚洲精品 | 久久精品av| 亚洲精品wwww| 欧美jizzhd极品欧美 | 羞羞网站在线观看入口免费 | 欧美成人小视频 | 羞羞视频一区二区 | 成人性视频在线 | 水卜樱一区二区av | 色妞视频男女视频 | 激情视频免费看 | 爱逼av| 宅男噜噜噜66国产免费观看 | 国产一国产精品一级毛片 |