yii中的登录如何实现

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

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;
登录后复制

2、登陆页面

<?phpuse yii\bootstrap\ActiveForm;use yii\helpers\Html;$form = ActiveForm::begin([    'id' => 'abc-form',    'options' => ['class' => 'form-horizontal'],])?><?= $form->field($model, 'adminuser')->textInput(['placeholder' => "用户名"])->label('账号') ?><?= $form->field($model, 'adminpass')->passwordInput()->label('密码') ?><?= Html::submitButton('提交') ?><?php ActiveForm::end() ?>
登录后复制

3、控制器

相关文章教程推荐:yii教程

<?phpnamespace app\controllers;use yii\web\Controller;use app\models\Admin;use Yii; class IndexController extends Controller{    public function actionIndex()    {//      不使用布局        $this->layout = false;        $model = new Admin;//        是否是post提交        if (Yii::$app->request->isPost) {//            获得post提交参数            $post = Yii::$app->request->post();            if($model->login($post)){                return "登陆成功";            } else {                return "登陆失败";            }        } else {            return $this->render("index", ['model' => $model]);        }    } }
登录后复制

4、模型

<?phpnamespace app\models;use yii\db\ActiveRecord;use Yii;class Admin extends ActiveRecord{    public static function tableName()    {        return "{{%admin}}";    }     public function rules()    {        return [            ['adminuser', 'required'],            ['adminpass', 'required'],//           验证密码是否正确            ['adminpass', 'validatePass']        ];    }     public function validatePass()    {        if (!$this->hasErrors()) {//            判断用户名密码是否正确            $data = self::find()                ->where(['adminuser' => $this->adminuser])                ->andwhere(['adminpass' => md5($this->adminpass)])                ->one();            if (is_null($data)) {                $this->addError('adminpass', 'adminuser or adminpass error');            }        }    }    public function login($data)    {        if($this->load($data) && $this->validate()) {//            登陆信息写入session            $session = Yii::$app->session;            $session->open();            $session->set('adminuser', $this->adminuser);//           更新登陆时间和IP            $this->updateAll(['logintime' => time(), 'loginip' => ip2long(Yii::$app->request->userIP)], ['adminuser' => $this->adminuser]);            return true;        }        return false;    }}
登录后复制

更多yii编程入门教程,请关注PHP中文网。

以上就是yii中的登录如何实现的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:浅析是否可在虚拟主机上安装ThinkPHP
下一篇:微信小程序购物商城系统的开发之目录结构的介绍

发表评论

关闭广告
关闭广告