使用UCenter整合应用 – 用户注册

1、当你在你站点下的【某一个应用】下注册的时候,第一步首先是去ucenter下注册的

PHP代码

$uid = uc_user_register($_POST['username'], $_POST['password'], $_POST['email']);   
  if($uid <= 0) {   
   if($uid == -1) {   
    echo ‘用户名不合法’;   
   } elseif($uid == -2) {   
    echo ‘包含要允许注册的词语’;   
   } elseif($uid == -3) {   
    echo ‘用户名已经存在’;   
   } elseif($uid == -4) {   
    echo ‘Email 格式有误’;   
   } elseif($uid == -5) {   
    echo ‘Email 不允许注册’;   
   } elseif($uid == -6) {   
    echo ‘该 Email 已经被注册’;   
   } else {   
    echo ‘未定义’;   
    
  } else {   
   $username = $_POST['username'];   
   
 

其中的这个uc_user_register又调用usercontrol类的onregister方法,如下

PHP代码

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;   
  
 

其中又调用usermodel的add_user方法

PHP代码

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;   
  
 

可见,执行这个操作后,UC_DBTABLEPRE.”members 表中就会多条用户记录了

2、在自己的应用中注册

PHP代码

if($username) {   
  $db->query(“INSERT INTO {$tablepre}members (uid,username,admin) VALUES (‘$uid’,'$username’,'0′)”);   
  //注册成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数   
  setcookie(‘Example_auth’, uc_authcode($uid.”\t”.$username, ‘ENCODE’));   
  echo ‘注册成功<br><a href=”‘.$_SERVER['PHP_SELF'].’”>继续</a>’;   
  exit;   
  
 

这样之后,example_members表中也就有条用户记录了。。

至此实现了,【同步注册】了。。。

3、不过还没完。。。虽然我们在ucenter和当前应用中都注册了用户了。。。那么【其它应用】咋办呢??

呵呵,别急,还有【激活】没讲呢。。

当你在别的网站,用这个账号第一次登陆的时候,会请求

PHP代码

list($uid, $username, $password, $email) = uc_user_login($_POST['username'], $_POST['password']);   
 

如果$uid > 0的话,会显示让你激活的链接,而通过这个激活链接点过去之后,就会绕过uc_user_register,而只在本应用的数据库插入一条用户记录。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值