Heim  >  Artikel  >  php教程  >  Implementieren Sie Anmelde-, Registrierungs- und Passwortabruffunktionen im Thinkphp-Framework

Implementieren Sie Anmelde-, Registrierungs- und Passwortabruffunktionen im Thinkphp-Framework

大家讲道理
大家讲道理Original
2016-11-08 13:38:071510Durchsuche

In diesem Artikel werden hauptsächlich die relevanten Informationen zu den Anmelde-, Registrierungs- und Passwortabruffunktionen unter dem Thinkphp-Framework vorgestellt.

Die Beispiele in diesem Artikel teilen Ihnen die Verwendung unter dem Thinkphp mit Framework. So implementieren Sie die Anmeldung, Registrierung und den Passwortabruf, der über das Ajax-Formular übermittelt wird, und Benutzer müssen nach der Registrierung den Hintergrund überprüfen.

Die Felder der Benutzertabelle sind ID, Nummer, Passwort, Name, E-Mail, Addtime, Status

Der spezifische Code lautet wie folgt

<?php
namespace Home\Controller;
use Think\Controller;
class LoginController extends Controller {
  //处理登录
  public function signin(){ 
    if(IS_GET){ 
      $this->display();
    } 
    if(IS_POST){
      /* 调用登录接口登录 */
      $User = M(&#39;user&#39;) ;  
      //I方法接收页面传递来的值
      $num = I(&#39;num&#39;) ; 
      $password = I(&#39;password&#39;) ;
      //查找user表中num等于$num的值
      $datanum = $User->where(array(&#39;num&#39;=>$num))->find();
      //判断$datanum的值
      if ($datanum){
        if (md5($password) === $datanum[&#39;password&#39;]) { 
          if ($datanum[&#39;status&#39;] == 0) {
            $this->error(&#39;用户处于未审核状态,请联系管理员&#39;);
          }elseif($datanum[&#39;status&#39;] == 2){
            $this->error(&#39;用户处于禁用状态,请联系管理员&#39;);
          }else{
            $this->autoLogin($datanum) ; //调用私有方法自动登录. 
            $uid = $datanum[&#39;id&#39;];
            if($_SESSION[&#39;user_auth&#39;][&#39;uid&#39;] && $_SESSION[&#39;user_auth&#39;][&#39;role&#39;] == &#39;user&#39;){
              $this->success(&#39;登录成功!&#39;, U(&#39;Index/index&#39;));
            }else{
              $this->error(&#39;存储错误.&#39;);
            }
          }
        }else{
          $this->error(&#39;密码填写不正确,请重新填写&#39;); 
          exit();
        }
      }else{
        $this->error(&#39;用户不存在,请注册&#39;,U(&#39;signup&#39;));
      }
    }
  }
 
  public function autoLogin($user){  
    /* 记录登录SESSION */
    $auth = array(
      &#39;uid&#39;       => $user[&#39;id&#39;],
      &#39;num&#39;    => $user[&#39;num&#39;], 
      &#39;role&#39;      => &#39;user&#39; , //记录用户类型 
    );
    session(&#39;user_auth&#39;, $auth);
    session(&#39;user_auth_sign&#39;, data_auth_sign($auth)); 
  }
 
  /*
  * 用户注册 
  */
  public function signup(){
    if(is_user_login()){
      $this->redirect(&#39;Index/index&#39;);
    }
    if(IS_GET){
      //注册页面
      $this->display();
    }
    if(IS_POST){
      //判断用户 
      $data[&#39;num&#39;] = I(&#39;num&#39;) ; 
      $User = M(&#39;user&#39;) ;
      $datanum = $User->where($data)->find();
      if ($datanum){
        $this->success(&#39;您已经注册过,请直接登录&#39;,U(&#39;signin&#39;));
      }else{
        $data[&#39;password&#39;] = md5(I(&#39;password&#39;)); 
        $data[&#39;name&#39;]  = I(&#39;name&#39;);
        $data[&#39;email&#39;]  = I(&#39;email&#39;);
        $data[&#39;addtime&#39;] = time();
        $uid = $User->add($data);
        if($uid) 
          $this->success(&#39;注册成功&#39;,U(&#39;signin&#39;)) ; 
        else  
          $this->error(&#39;注册失败&#39;) ; 
      }
    }
  }
 
  public function logout(){
    if(is_user_login()){
      $User = M(&#39;user&#39;) ;
      session(&#39;user_auth&#39;, null);
      session(&#39;user_auth_sign&#39;, null);
      session(&#39;[destroy]&#39;);
      $this->success(&#39;登出成功!&#39;, U(&#39;signin&#39;));
    } else {
      $this->redirect(&#39;signin&#39;);
    }
  }
 
  //忘记密码
  public function wjpas(){ 
    if(IS_GET){ 
      $this->display();
    } 
    if(IS_POST){
      $User = M(&#39;user&#39;) ;
      $num = I(&#39;num&#39;) ;
      $data[&#39;password&#39;] = md5(I(&#39;password&#39;)) ; 
      $email = I(&#39;email&#39;) ;
      $datanum = $User->where(array(&#39;num&#39;=>$num))->find();
      if ($datanum){
        if ($email === $datanum[&#39;email&#39;]) {
          $User->where(array(&#39;num&#39;=>$num))->save($data); // 根据条件更新记录
          $this->success(&#39;密码修改成功&#39;,U(&#39;signin&#39;)) ; 
        }else{
          $this->error(&#39;邮箱填写不正确,请重新填写&#39;); 
          exit();
        }
      }else{
        $this->error(&#39;用户不存在,请注册&#39;,U(&#39;signup&#39;));
      }
    }
  }
}
?>

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle beim Erlernen der PHP-Programmierung hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn