PHP教程:修改discuz兼容自己开发的通行证_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

PHP教程:修改discuz兼容自己开发的通行证

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:自己开发通行证兼容
黑客防线网安网讯:  修改discuz,uchome,ucenter兼容自己开发的通行证    最近稍有接触,修改其中的部分代码,就贡献其中的关键部分吧。    目前discuz的会员注册是在discuz自己的体系中完成,然后...
  修改discuzuchomeucenter兼容自己开发的通行证
  
  最近稍有接触,修改其中的部分代码,就贡献其中的关键部分吧
  
  目前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这几个变量的时候。包含自己的通行证,直接可以打通。
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17550-1.html
网站维护教程更新时间:2012-09-21 05:21:02  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer