国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP教程:修改discuz兼容自己開發的通行證

2020-03-24 16:23:24
字體:
來源:轉載
供稿:網友
修改discuz,uchome,ucenter兼容自己開發的通行證最近稍有接觸,修改其中的部分代碼,就貢獻其中的關鍵部分吧。

目前discuz的會員注冊是在discuz自己的體系中完成,然后post(或者mysql直接操作,此處以post代稱)到ucenter的數據庫,其中會員密碼是md5(md5(真實密碼)+首次隨機字符sult),memberid由ucenter產生。然后得到改值,保存在discuz。

如果是自己已有通行證系統,產生id,保存密碼這部分就在自己的系統完成,然后送回來到ucenter,然后保存到dizcuz。

在uc_center/client.php中加入代碼

//cjjer
functionuc_user_registerCjjer($uid,$username,$password,$email,$questionid='',$answer=''){

returncall_user_func(UC_API_FUNC,'user','register',array('uid'= $uid,'username'= $username,'password'= $password,'email'= $email,'questionid'= $questionid,'answer'= $answer));
}
functionuc_user_updateCjjer($uid,$username,$password,$email,$questionid='',$answer=''){
returncall_user_func(UC_API_FUNC,'user','myupdate',array('uid'= $uid,'username'= $username,'password'= $password,'email'= $email,'questionid'= $questionid,'answer'= $answer));
}

注冊的時候就用uc_user_registerCjjer。

在contol/user.php加入代碼:


//rewritebycjjer

functiononregister(){
$this- init_input();
$username=$this- input('username');
$myuserid=intval($this- input('uid'));
$password=$this- input('password');
$email=$this- input('email');
$questionid=$this- input('questionid');
$answer=$this- input('answer');

if((($status=$this- _check_username($username)) 0)||
(($status=$this- _check_email($email)) 0)||
($status=$_ENV['user']- get_user_by_uid($myuserid))
){
//開始更新會員資料
$_ENV['user']- update_user($myuserid,$username,$password,$email,$myuserid,$questionid,$answer);
return$myuserid;
}else{
$uid=$_ENV['user']- add_user($username,$password,$email,$myuserid,$questionid,$answer);
}
return$uid;
}

functiononmyupdate(){
$this- init_input();
$username=$this- input('username');
$myuserid=intval($this- input('uid'));
$password=$this- input('password');
$email=$this- input('email');
$questionid=$this- input('questionid');
$answer=$this- input('answer');

$status=$_ENV['user']- get_user_by_uid($myuserid);
if(!$status){
return-1;
}
$uid=$_ENV['user']- update_user($myuserid,$username,$password,$email,$myuserid,$questionid,$answer);
return$uid;
}


然后在model/user.php加入

functionupdate_user($user_id,$username,$password,$email,$uid=0,$questionid='',$answer=''){
$salt=substr(uniqid(rand()),-6);
$password=md5(md5($password).$salt);
if(!$uid)return0;
$sqladd=$uid? uid=' .intval($uid). ', :'';
$sqladd.=$questionid 0? secques=' .$this- quescrypt($questionid,$answer). ', : secques='',
//不更新密碼,,salt='$salt'
$this- db- query( update .UC_DBTABLEPRE. membersSETusername='$username',email='$email'whereuid='$uid'

return$user_id;
}

修改其中的add_user方法為:

functionadd_user($username,$password,$email,$uid=0,$questionid='',$answer=''){
$salt=substr(uniqid(rand()),-6);
$password=md5(md5($password).$salt);
$sqladd=$uid? uid=' .intval($uid). ', :'';
$sqladd.=$questionid 0? secques=' .$this- quescrypt($questionid,$answer). ', : secques='',
$this- db- query( INSERTINTO .UC_DBTABLEPRE. membersSET$sqladdusername='$username',password='$password',email='$email',regip=' .$this- base- onlineip. ',regdate=' .$this- base- time. ',salt='$salt'
$uid=$this- db- insert_id();
$this- db- query( INSERTINTO .UC_DBTABLEPRE. memberfieldsSETuid='$uid'
return$uid;
}


這樣,在uchome注冊的用戶就能自動映射到discuz,不需要激活。直接更新。


其中discuz系統的關鍵部分在include/common.inc.php里面的140行左右的驗證用戶登錄的。這里切入即可。就是在產生$sid=$discuz_pw=$discuz_secques=$discuz_uid這幾個變量的時候。包含自己的通行證,直接可以打通。


uchome在source/function_common.php這個functioncheckauth()函數里面直接切入就可以了。html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黔西县| 安阳市| 马龙县| 建德市| 福建省| 灵川县| 杭锦旗| 紫云| 绵竹市| 霍林郭勒市| 塔河县| 三门峡市| 喀喇| 环江| 扬中市| 宜兴市| 青岛市| 大连市| 和硕县| 辰溪县| 雅安市| 杨浦区| 平泉县| 萨嘎县| 新密市| 山东| 垦利县| 开封县| 竹山县| 贵阳市| 隆德县| 城市| 大渡口区| 民丰县| 淅川县| 安化县| 东丰县| 桓仁| 长宁区| 宜章县| 咸丰县|