注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

xiaozhuge0825的博客

 
 
 

日志

 
 

Discuz注册功能分析  

2010-05-17 11:49:09|  分类: 康盛 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

(2009-09-21 12:48:06)

Discuz注册功能分析 - xiaozhuge0825 - xiaozhuge0825的博客转载

标签:

discuz注册

discuz加密

it

分类:Discuz

Discuz注册文件链

register.php

uc_client/client.php

uc_client/control/user.php

uc_clident/mod/user.php

 

注册过程分析:

1、register.php

获得的变量值不再多做解释

199行左右:

$uid = uc_user_register($username, $password, $email, $questionid, $answer);  //UC注册

调用函数uc_client/client.php---- uc_user_register();

2、uc_client/client.php

292行左右:

function uc_user_register($username, $password, $email, $questionid = '', $answer = '') {

return call_user_func(UC_API_FUNC, 'user', 'register', array('username'=>$username, 'password'=>$password, 'email'=>$email, 'questionid'=>$questionid, 'answer'=>$answer));

}

这样就调用了uc_client/control/user.php中的onregister()函数

自己可以查一下call_user_func()这个函数的用法

3、uc_client/control/user.php

64行左右:

       function onregister() {

              $this->init_input();

              $username = $this->input('username');

              $password =  $this->input('password');

              $email = $this->input('email');

              $questionid = $this->input('questionid');

              $answer = $this->input('answer');

 

              if(($status = $this->_check_username($username)) < 0) {

                     return $status;

              }

              if(($status = $this->_check_email($email)) < 0) {

                     return $status;

              }

              $uid = $_ENV['user']->add_user($username, $password, $email, 0, $questionid, $answer);

              return $uid;

       }

       找到了吧,add_user()这个函数才是真正注册获得的用户名、密码等信息

4、uc_clident/mod/user.php

       106行左右:    

function add_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("INSERT INTO ".UC_DBTABLEPRE."members SET $sqladd username='$username', password='$password', email='$email', regip='".$this->base->onlineip."', regdate='".$this->base->time."', salt='$salt'");

              $uid = $this->db->insert_id();

              $this->db->query("INSERT INTO ".UC_DBTABLEPRE."memberfields SET uid='$uid'");

              return $uid;

       }

修改成自己想要的加密方式就OK了

  评论这张
 
阅读(150)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018