yii中的登錄如何實現

yii中的登錄如何實現

yii中的登錄如何實現

1、創建數據表shop_admin

CREATE?TABLE?`shop_admin`?( ??`adminid`?int(10)?UNSIGNED?NOT?NULL?COMMENT?'主鍵ID', ??`adminuser`?varchar(32)?NOT?NULL?DEFAULT?''?COMMENT?'管理員賬號', ??`adminpass`?char(32)?NOT?NULL?DEFAULT?''?COMMENT?'管理員密碼', ??`adminemail`?varchar(50)?NOT?NULL?DEFAULT?''?COMMENT?'管理員郵箱', ??`logintime`?int(10)?UNSIGNED?NOT?NULL?DEFAULT?'0'?COMMENT?'登陸時間', ??`loginip`?bigint(20)?NOT?NULL?DEFAULT?'0'?COMMENT?'登陸IP', ??`createtime`?int(10)?UNSIGNED?NOT?NULL?DEFAULT?'0'?COMMENT?'創建時間' )?ENGINE=InnoDB?DEFAULT?CHARSET=utf8;

yii中的登錄如何實現

2、登陸頁面

<?php use yiibootstrapActiveForm; use yiihelpersHtml; $form = ActiveForm::begin([     &#39;id&#39; =>?'abc-form', ????'options'?=&gt;?['class'?=&gt;?'form-horizontal'], ])?&gt; =?$form-&gt;field($model,?'adminuser')-&gt;textInput(['placeholder'?=&gt;?"用戶名"])-&gt;label('賬號')??&gt; =?$form-&gt;field($model,?'adminpass')-&gt;passwordInput()-&gt;label('密碼')??&gt; =?Html::submitButton('提交')??&gt; <?php  ActiveForm::end() ?>

3、控制器

相關文章教程推薦:yii教程

<?php namespace appcontrollers; use yiiwebController; use appmodelsAdmin; use Yii;   class IndexController extends Controller {     public function actionIndex()     { //      不使用布局         $this->layout?=?false; ????????$model?=?new?Admin; //????????是否是post提交 ????????if?(Yii::$app-&gt;request-&gt;isPost)?{ //????????????獲得post提交參數 ????????????$post?=?Yii::$app-&gt;request-&gt;post(); ????????????if($model-&gt;login($post)){ ????????????????return?"登陸成功"; ????????????}?else?{ ????????????????return?"登陸失敗"; ????????????} ????????}?else?{ ????????????return?$this-&gt;render("index",?['model'?=&gt;?$model]); ????????} ????} ? }

4、模型

<?php namespace appmodels; use yiidbActiveRecord; use Yii; class Admin extends ActiveRecord {     public static function tableName()     {         return "{{%admin}}";     }       public function rules()     {         return [             [&#39;adminuser&#39;, &#39;required&#39;],             [&#39;adminpass&#39;, &#39;required&#39;], //           驗證密碼是否正確             [&#39;adminpass&#39;, &#39;validatePass&#39;]         ];     }       public function validatePass()     {         if (!$this->hasErrors())?{ //????????????判斷用戶名密碼是否正確 ????????????$data?=?self::find() ????????????????-&gt;where(['adminuser'?=&gt;?$this-&gt;adminuser]) ????????????????-&gt;andwhere(['adminpass'?=&gt;?md5($this-&gt;adminpass)]) ????????????????-&gt;one(); ????????????if?(is_null($data))?{ ????????????????$this-&gt;addError('adminpass',?'adminuser?or?adminpass?error'); ????????????} ????????} ????} ????public?function?login($data) ????{ ????????if($this-&gt;load($data)?&amp;&amp;?$this-&gt;validate())?{ //????????????登陸信息寫入session ????????????$session?=?Yii::$app-&gt;session; ????????????$session-&gt;open(); ????????????$session-&gt;set('adminuser',?$this-&gt;adminuser); //???????????更新登陸時間和IP ????????????$this-&gt;updateAll(['logintime'?=&gt;?time(),?'loginip'?=&gt;?ip2long(Yii::$app-&gt;request-&gt;userIP)],?['adminuser'?=&gt;?$this-&gt;adminuser]); ????????????return?true; ????????} ????????return?false; ????} }

更多yiiyii教程教程,請關注PHP中文網。? ? ? ??

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享