<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ##一、實驗目的   1、掌握ThinkPHP5.0登錄與驗證原理,實現用戶登錄功能。 ##二、實驗內容   1、建立ThinkPHP5.0用戶登錄與驗證功能頁面。 ##三、實驗步驟及過程   ThinkPHP登錄是應用系統網站的一個基本功能。我們借鑒nango代碼,增加了一些用戶輸入驗證功能,實現了用戶登錄功能。   1、創建登錄界面   我們下載nango開源項目文件,創建了weixin模塊,并增加了validate文件夾的AdminLogin.php文件,(http://127.0.0.1/noneCms/public/index.php/weixin/login/index)是用戶登錄入口,如圖所示。    ![](https://box.kancloud.cn/1ba9bb654f46e3a2c2ad7b40ca53db6d_553x422.jpg)   實驗流程如下所示:   1)安裝程序:(http://127.0.0.1/noneCms/public/install)安裝數據庫程序,可以參看上一個實驗的內容,不同的是可以設置數據庫的用戶名和密碼,可采用phpStudy環境下安裝數據庫;   2)創建weixin模塊:在根目錄下使用命令php think build –module weixin,創建weixin模塊;   3)創建控制類及方法:建立Login控制類及index方法,實現登錄控制類。   4)創建view層的顯示頁面以及驗證類。   2、關鍵代碼解析   Login.php為控制模塊文件,即通過(http://127.0.0.1/noneCms/index.php/weixin/login/index)訪問網站的用戶登錄頁面,調用weixin模塊的login控制器的index方法。該文件還可以采用不同的方法實現引導用戶登錄頁面,我們采用weixin模塊,以login控制器的index方法引導登錄頁面顯示,以login控制類的login方法完成登錄功能。   1)Login.php文件   Login.php是login控制器文件,其中index方法主要完成登錄頁面顯示,login完成用戶密碼驗證及輸入的驗證,代碼如下: ~~~ <?php namespace app\weixin\controller; use think\Controller; use think\Db; use think\Request; use think\Session; class Login extends Controller { //登錄界面 public function index(){ //驗證是否登錄成功 if (Session::has('userinfo')) { $this->redirect('index/index'); } return $this->fetch();//按照系統的默認規則定位模板文件到:[模板文件目錄]/當前控制器名(小寫+下劃線)/當前操作名(小寫).html,即view/login_index.html } //登錄操作 public function login(){ if(!request()->isPost()){ $this->redirect('index/index'); } $name = input('post.username'); $passwd = input('post.password'); $captcha = input('post.captcha'); $data1 = [ 'username'=>$name, 'password'=>$passwd ]; $validate = \think\Loader::validate('AdminLogin'); if(!$validate->check($data1)){//驗證數據 exit(json_encode(array('status' => 0, 'msg' => $validate->getError()))); } if (!$name || !$passwd) { exit(json_encode(array('status' => 0, 'msg' => '用戶名和密碼不能為空'))); } if(!captcha_check($captcha)){ exit(json_encode(array('status' => 0, 'msg' => '請輸入正確的驗證碼'))); } $info = Db::name('admin')->where('username',$name)->find(); $md5_passwd = md5(md5(trim($passwd)).$info['encrypt']); if (!$info || $md5_passwd != $info['password']) { exit(json_encode(array('status' => 0, 'msg' => '用戶名或密碼錯誤,請重新輸入'))); } if ($info['islock'] == 1) { exit(json_encode(array('status' => 0, 'msg' => '您的賬戶已被鎖定,請聯系超級管理員'))); } //寫入日志 $data['ip'] = $login['loginip'] = request()->ip(); $data['userid'] = $info['id'];`````` $data['datetime'] = $login['logintime'] = time(); Db::name('log')->insert($data); Db::name('admin')->where('id',$info['id'])->update($login); //登入成功,存入session Session::set('userinfo',['name' => $name,'id' => $info['id'],'login_time' => time()]); exit(json_encode(array('status' => 1, 'msg' => '登錄成功', 'url' => url('index/index')))); } } ~~~   2)validate/AdminLogin.php文件   該文件輔助Login控制器的login方法驗證用戶登錄數據,在Login.php文件中采用代碼``$validate = \think\Loader::validate('AdminLogin')``;調用AdminLogin驗證器驗證。   AdminLogin.php文件如下所示。 ~~~ <?php namespace app\weixin\validate; use think\Validate; class AdminLogin extends Validate { protected $rule = [ 'username' => 'require|max:25|min:4', 'email' => 'email', 'password' => 'require|max:25|min:6', 'repassword'=>'repassword' ]; protected $message = [ 'username.require' => '用戶名必須', 'username.max' => '用戶名最多不能超過25個字符', 'username.min' => '用戶名最少4個字符', 'password.require' => '密碼必須', 'password.min' => '密碼長度至少六位', 'email' => '郵箱格式錯誤', //'repassword.require' => '確認密碼必須', 'repassword.confirm' => '兩次密碼必須一致' ]; } ~~~ ##四、技術服務   1、如果有疑問或者需要幫助,請加入QQ群(群名稱:豆豆咨詢,群號:625686304);或者公眾號douAsk,公眾號名稱為“豆豆咨詢”。掃描以下二維碼,關注“豆豆咨詢”。 ![](https://box.kancloud.cn/541e0b698446c38ba398b183c361fe0d_430x430.jpg) 技術QQ群名稱:豆豆咨詢,群號:625686304 微信公眾號名稱:豆豆咨詢,微信公眾號:douAsk 彩蛋號:1208(在公眾號里輸入彩蛋號即可得到源碼)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看