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
- yii2大型商城实战开发(后台登陆功能)
- Yii实战开发大型商城项目视频教程
- yii2.0使用migrate创建后台登陆
- YII2.0实战开发小结
- 大型商城
- Yii2 后台添加《操作日志》的功能
- 6 yii2.0使用migrate创建后台登陆
- java电子商务系统源码 2次开发 大型商城开发
- aspx后台登陆框post注入实战
- 登陆系列功能开发
- thinkphp3.2.3开发商城实战(一)
- 商城项目实战13:展示后台管理页面
- 大型Java多用户商城系统开发的心得和困难
- 分享大型Java多用户商城系统开发历程
- 分享大型Java多用户商城系统开发历程
- 后台组件功能开发
- 后台管理系统的登陆验证功能
- 大型综合实战教程《梦幻登陆》(价…
- 大型网站架构演进(分布式系统二)
- Android Scroller
- C#中的引用传递、值传递。
- NMF分解
- CSS WILL-CHANGE 属性
- yii2大型商城实战开发(后台登陆功能)
- 【深度学习:目标检测】RCNN学习笔记(4):fast rcnn
- div浮动层,遮罩层屏幕居中(水平垂直居中)CSS代码
- Type Inference
- C语言学习——第一篇博客 (二)
- poj 3694 Network
- HDU#1040:As Easy As A+B
- 一个DIV做的LODING动画CSS3动画
- 剑指offer:数组中只出现一次的数字(java)