首頁 php教程 PHP源码 thinkphp框架下實作登入、註冊、找回密碼功能

thinkphp框架下實作登入、註冊、找回密碼功能

Nov 08, 2016 pm 01:38 PM
thinkphp 註冊 登入

這篇文章主要介紹了thinkphp框架下實現登入、註冊、找回密碼功能的相關資料,有興趣的朋友們可以參考一下

本文實例為大家分享了thinkphp框架下使用ajax表單提交的登入、註冊、找密碼的實現方法,以及註冊後的用戶需後台審核。

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(&#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;));
      }
    }
  }
}
?>
登入後複製

以上就是本文的全部內容,希望對大家學習php設計程式有所幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

小紅書怎麼註冊多個帳號?註冊多個帳號會被發現嗎? 小紅書怎麼註冊多個帳號?註冊多個帳號會被發現嗎? Mar 25, 2024 am 09:41 AM

小紅書作為一個集社交和電商於一身的平台,吸引了越來越多的用戶加入。有些用戶希望能夠註冊多個帳號以便更好地體驗和小紅書互動。那麼,小紅書要怎麼註冊多個帳號呢?一、小紅書怎麼註冊多個帳號? 1.使用不同手機號碼註冊目前,小紅書主要採用手機號碼註冊帳號的方式。用戶有時會嘗試購買多個手機號碼卡,並利用它們註冊多個小紅書帳號。但這種做法有一些限制,因為購買多個手機號碼卡比較麻煩且成本較高。 2.使用信箱註冊除了手機號碼,信箱也可以用來註冊小紅書帳號。使用者可以準備多個郵箱地址,然後分別用這些郵箱地址註冊帳號。不過

wallpaperengine登入別的號碼後下載別人的桌布怎麼辦 wallpaperengine登入別的號碼後下載別人的桌布怎麼辦 Mar 19, 2024 pm 02:00 PM

當你在自己電腦上登過別人steam帳號之後,剛好這個別人的帳號也有wallpaper軟體,切換回自己帳號之後steam就會自動下載別人帳號訂閱的桌布,使用者可以透過關閉steam雲端同步解決。 wallpaperengine登入別的號碼後下載別人的桌布怎麼辦1、登陸你自己的steam帳號,在設定裡面找到雲端同步,關閉steam雲端同步。 2.登陸你之前登陸的別人的steam帳號,打開wallpaper創意工坊,找到訂閱內容,然後取消全部訂閱。 (以後防止找不到壁紙,可以先收藏再取消訂閱)3、切換回自己的stea

小紅書怎麼登入以前的帳號?它換綁後原來號碼遺失了怎麼辦? 小紅書怎麼登入以前的帳號?它換綁後原來號碼遺失了怎麼辦? Mar 21, 2024 pm 09:41 PM

隨著社群媒體的快速發展,小紅書成為許多年輕人分享生活、探索新產品的熱門平台。在使用過程中,有時使用者可能會遇到登入先前帳號的困難。本文將詳細探討如何解決小紅書登入舊帳號的問題,以及如何應對更換綁定後可能遺失原帳號的情況。一、小紅書怎麼登入以前的帳號? 1.找回密碼登入如果長時間未登入小紅書,可能導致帳號被系統回收。為了恢復存取權限,你可以嘗試透過找回密碼的方式重新登入帳號。操作步驟如下:(1)開啟小紅書App或官網,點選「登入」按鈕。 (2)選擇「找回密碼」。 (3)輸入你註冊帳號時所使用的手機號碼

怎麼註冊小紅書帳號?註冊小紅書帳號需要什麼? 怎麼註冊小紅書帳號?註冊小紅書帳號需要什麼? Mar 22, 2024 am 10:16 AM

小紅書,一個集生活、娛樂、購物、分享於一體的社交平台,已成為許多年輕人日常生活中不可或缺的一部分。那麼,如何註冊小紅書帳號呢?一、怎麼註冊小紅書帳號? 1.開啟小紅書官網或下載小紅書APP。點擊下方的「註冊」按鈕,您可以選擇不同的註冊方式。目前,小紅書支援手機號碼、信箱以及第三方帳號(如微信、QQ、微博等)進行註冊。 3.填寫相關資料。根據選擇的註冊方式,填寫相應的手機號碼、郵箱或第三方帳號資訊。 4.設定密碼。設定一個強壯的密碼,確保帳號安全。 5.完成驗證。根據提示完成手機驗證或信箱驗證。 6.完善個人

小紅書帳號怎麼註冊?它的帳號異常怎麼恢復? 小紅書帳號怎麼註冊?它的帳號異常怎麼恢復? Mar 21, 2024 pm 04:57 PM

小紅書作為全球最受歡迎的生活方式分享平台之一,吸引了大量用戶關注。那麼,如何註冊小紅書帳號呢?本文將為您詳細介紹小紅書帳號的註冊流程,並解答小紅書帳號異常如何復原的問題。一、小紅書帳號怎麼註冊? 1.下載小紅書APP:在手機應用程式商店搜尋並下載小紅書APP,安裝完成後開啟。 2.註冊帳號:開啟小紅書APP後,點選首頁右下角的「我」按鈕,然後選擇「註冊」。 3.填寫註冊資料:依照指示填寫手機號碼、設定密碼、驗證碼等註冊資料。 4.完善個人資料:註冊成功後,根據指示完善個人資料,如姓名、性別、生日等。 5.設定

qooapp帳號怎麼註冊 qooapp帳號怎麼註冊 Mar 19, 2024 pm 08:58 PM

qooapp是能夠下載很多遊戲的軟體,那麼帳號怎麼註冊呢?用戶們需要點擊還沒有通行證,去註冊這個按鍵,然後選擇一種註冊方式就可以了。這篇帳號註冊方法介紹夠告訴大家具體該怎麼操作,以下就是具體的介紹,趕快看看吧。 qooapp帳號怎麼註冊答:點選去註冊,然後選擇一種註冊方式具體方法:1、先進入登入介面後,點選下面的還沒有通行證?現在申請。 2、之後選擇一個自己需要的登入方式。 3、之後就能夠直接使用了。官網註冊:1.開啟網站https://apps.ppaooq.com/,點選右上角註冊。 2、選擇註冊

thinkphp專案怎麼運行 thinkphp專案怎麼運行 Apr 09, 2024 pm 05:33 PM

執行 ThinkPHP 專案需要:安裝 Composer;使用 Composer 建立專案;進入專案目錄,執行 php bin/console serve;造訪 http://localhost:8000 查看歡迎頁面。

thinkphp有幾個版本 thinkphp有幾個版本 Apr 09, 2024 pm 06:09 PM

ThinkPHP 擁有多個版本,針對不同 PHP 版本而設計。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用於修復 bug 和提供新功能。目前最新穩定版本為 ThinkPHP 6.0.16。在選擇版本時,需考慮 PHP 版本、功能需求和社群支援。建議使用最新穩定版本以獲得最佳性能和支援。

See all articles