中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用thinkphp框架怎么實現一個登錄、注冊、找回密碼功能

發布時間:2020-12-16 15:55:39 來源:億速云 閱讀:317 作者:Leah 欄目:開發技術

這篇文章給大家介紹利用thinkphp框架怎么實現一個登錄、注冊、找回密碼功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

user表的字段為id、num、password、name、email、addtime、status

具體代碼如下

<?php
namespace Home\Controller;
use Think\Controller;
class LoginController extends Controller {
  //處理登錄
  public function signin(){ 
    if(IS_GET){ 
      $this->display();
    } 
    if(IS_POST){
      /* 調用登錄接口登錄 */
      $User = M('user') ;  
      //I方法接收頁面傳遞來的值
      $num = I('num') ; 
      $password = I('password') ;
      //查找user表中num等于$num的值
      $datanum = $User->where(array('num'=>$num))->find();
      //判斷$datanum的值
      if ($datanum){
        if (md5($password) === $datanum['password']) { 
          if ($datanum['status'] == 0) {
            $this->error('用戶處于未審核狀態,請聯系管理員');
          }elseif($datanum['status'] == 2){
            $this->error('用戶處于禁用狀態,請聯系管理員');
          }else{
            $this->autoLogin($datanum) ; //調用私有方法自動登錄. 
            $uid = $datanum['id'];
            if($_SESSION['user_auth']['uid'] && $_SESSION['user_auth']['role'] == 'user'){
              $this->success('登錄成功!', U('Index/index'));
            }else{
              $this->error('存儲錯誤.');
            }
          }
        }else{
          $this->error('密碼填寫不正確,請重新填寫'); 
          exit();
        }
      }else{
        $this->error('用戶不存在,請注冊',U('signup'));
      }
    }
  }
 
  public function autoLogin($user){  
    /* 記錄登錄SESSION */
    $auth = array(
      'uid'       => $user['id'],
      'num'    => $user['num'], 
      'role'      => 'user' , //記錄用戶類型 
    );
    session('user_auth', $auth);
    session('user_auth_sign', data_auth_sign($auth)); 
  }
 
  /*
  * 用戶注冊 
  */
  public function signup(){
    if(is_user_login()){
      $this->redirect('Index/index');
    }
    if(IS_GET){
      //注冊頁面
      $this->display();
    }
    if(IS_POST){
      //判斷用戶 
      $data['num'] = I('num') ; 
      $User = M('user') ;
      $datanum = $User->where($data)->find();
      if ($datanum){
        $this->success('您已經注冊過,請直接登錄',U('signin'));
      }else{
        $data['password'] = md5(I('password')); 
        $data['name']  = I('name');
        $data['email']  = I('email');
        $data['addtime'] = time();
        $uid = $User->add($data);
        if($uid) 
          $this->success('注冊成功',U('signin')) ; 
        else  
          $this->error('注冊失敗') ; 
      }
    }
  }
 
  public function logout(){
    if(is_user_login()){
      $User = M('user') ;
      session('user_auth', null);
      session('user_auth_sign', null);
      session('[destroy]');
      $this->success('登出成功!', U('signin'));
    } else {
      $this->redirect('signin');
    }
  }
 
  //忘記密碼
  public function wjpas(){ 
    if(IS_GET){ 
      $this->display();
    } 
    if(IS_POST){
      $User = M('user') ;
      $num = I('num') ;
      $data['password'] = md5(I('password')) ; 
      $email = I('email') ;
      $datanum = $User->where(array('num'=>$num))->find();
      if ($datanum){
        if ($email === $datanum['email']) {
          $User->where(array('num'=>$num))->save($data); // 根據條件更新記錄
          $this->success('密碼修改成功',U('signin')) ; 
        }else{
          $this->error('郵箱填寫不正確,請重新填寫'); 
          exit();
        }
      }else{
        $this->error('用戶不存在,請注冊',U('signup'));
      }
    }
  }
}
?>

關于利用thinkphp框架怎么實現一個登錄、注冊、找回密碼功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

抚顺市| 福海县| 平度市| 吴川市| 永寿县| 格尔木市| 瓮安县| 彭阳县| 岚皋县| 胶南市| 大城县| 冷水江市| 海伦市| 富平县| 阳朔县| 新营市| 西乌珠穆沁旗| 青冈县| 桐柏县| 普定县| 新河县| 饶阳县| 锡林浩特市| 筠连县| 永川市| 山阳县| 潢川县| 夏邑县| 苏尼特左旗| 维西| 堆龙德庆县| 克拉玛依市| 宁蒗| 义乌市| 桓仁| 辉县市| 滦平县| 剑河县| 南城县| 津南区| 丘北县|