yii2大型商城实战开发(后台登陆功能)

来源:互联网 发布:阿里云域名优惠码 编辑:程序博客网 时间:2024/04/30 07:17

控制器 PublicController.php

<?php    namespace app\modules\controllers;    use yii\web\Controller;    use app\modules\models\Admin;    use Yii;    class PublicController extends Controller    {        public function actionLogin()        {            $this->layout=false;            $model=new Admin;            if(Yii::$app->request->isPost){                $post=Yii::$app->request->post();                if($model->login($post)){                    $this->redirect(['default/index']);                    Yii::$app->end();                }            }            return $this->render('login',['model'=>$model]);        }    }

模型 Admin.php

<?phpnamespace app\modules\models;use yii\db\ActiveRecord;use Yii;class Admin extends ActiveRecord{    public $rememberMe = true;    public static function tableName()    {        return '{{%admin}}';    }    public function rules()    {        return [            ['adminuser', 'required', 'message' => '管理员账号不能为空'],            ['adminpass', 'required', 'message' => '管理员密码不能为空'],            ['rememberMe', 'boolean'],            ['adminpass', 'validatePass'],         ];       }     public function validatePass()    {        if (!$this->hasErrors()) {            $data = self::find()->where('adminuser = :user and adminpass = :pass', [":user" => $this->adminuser, ":pass" => md5($this->adminpass)])->one();            if (is_null($data)) {                $this->addError("adminpass", "用户名或者密码错误");            }        }    }    public function login($data)    {        if ($this->load($data) && $this->validate()) {            $lifetime = $this->rememberMe ? 24*3600 : 0;            $session = Yii::$app->session;            session_set_cookie_params($lifetime);            $session['admin'] = [                'adminuser' => $this->adminuser,                'isLogin' => 1,            ];            $this->updateAll(['logintime' => time(), 'loginip' => ip2long(Yii::$app->request->userIP)], 'adminuser = :user', [':user' => $this->adminuser]);            return (bool)$session['admin']['isLogin'];        }        return false;    }}

视图 login.php

                <?php $form=ActiveForm::begin([                    'fieldConfig'=>[                        'template'=>'{error}{input}',                    ],                ]); ?>                <?php echo $form->field($model, 'adminuser')->textInput(["class" => "span12", "placeholder" => "管理员账号"]); ?>                <?php echo $form->field($model, 'adminpass')->passwordInput(["class" => "span12", "placeholder" => "管理员密码"]); ?>                <a href="<?php echo yii\helpers\Url::to(['public/seekpassword']); ?>" class="forgot">忘记密码?</a>                <?php echo $form->field($model, 'rememberMe')->checkbox([                    'id' => 'remember-me',                    'template' => '<div class="remember">{input}<label for="remember-me">记住我</label></div>',                ]); ?>                <?php echo Html::submitButton('登录', ["class" => "btn-glow primary login"]); ?>                <?php ActiveForm::end(); ?>
1 0
原创粉丝点击