加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

yii2.0实现验证用户名与邮箱功能

发布时间:2020-12-13 04:06:33 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:yii2.0实现验证用户名与邮箱功能》要点: 本文介绍了PHP实例:yii2.0实现验证用户名与邮箱功能,希望对您有用。如果有疑问,可以联系我们。 PHP学习 本文为大家分享了yii2.0实现验证用户名与邮箱功能的相关代码,具体内容如下 视图signup.php代码

《PHP实例:yii2.0实现验证用户名与邮箱功能》要点:
本文介绍了PHP实例:yii2.0实现验证用户名与邮箱功能,希望对您有用。如果有疑问,可以联系我们。

PHP学习本文为大家分享了yii2.0实现验证用户名与邮箱功能的相关代码,具体内容如下

视图signup.php代码:


<?php
use yiihelpersHtml;
use yiibootstrapActiveForm;
/* @var $this yiiwebView */
/* @var $form yiibootstrapActiveForm */
/* @var $model frontendmodelsSignupForm */
$this->title = '注册';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-signup">
 <h1><?= Html::encode($this->title) ?></h1>
 <p>Please fill out the following fields to signup:</p>
 <div class="row">
  <div class="col-lg-5">
   <?php $form = ActiveForm::begin([
    'id' => 'form-signup','enableAjaxValidation' => true,'enableClientValidation' => true,]); ?>
    
    <?= $form->field($model,'username') ?>
    <?= $form->field($model,'email') ?>
    <?= $form->field($model,'password')->passwordInput() ?>
    <?= $form->field($model,'password_compare')->passwordInput() ?>
    
    <div class="form-group">
     <?= Html::submitButton('Signup',['class' => 'btn btn-primary','name' => 'signup-button']) ?>
    </div>
    
   <?php ActiveForm::end(); ?>
  </div>
 </div>
</div>

控制器SiteController.php


public function actionSignup()
 {
  $model = new SignupForm();
  
  $model->load($_POST);
  if (Yii::$app->request->isAjax) {
   Yii::$app->response->format = yiiwebResponse::FORMAT_JSON;
   return yiibootstrapActiveForm::validate($model);
  }
  
  if ($model->load(Yii::$app->request->post())) {
   if ($user = $model->signup()) {
    if (Yii::$app->getUser()->login($user)) {
     return $this->goHome();
    }
   }
  }
  return $this->render('signup',[
   'model' => $model,]);
 }

模型SignupForm.php


use commonmodelsUser;
use yiibaseModel;
use Yii;
/**
 * Signup form
 */
class SignupForm extends Model
{
 public $username;
 public $email;
 public $password;
 public $password_compare;
 /**
  * @inheritdoc
  */
 public function rules()
 {
  return [
   ['username','filter','filter' => 'trim'],['username','required'],'unique','targetClass' => 'commonmodelsUser','message' => '用户名已存在.'],'string','min' => 2,'max' => 255],['email','email'],'message' => '邮箱名已存在.'],[['password','password_compare'],'min' => 6,'max' => 16,'message' => '{attribute}是6-16位数字或字母'],['password_compare','compare','compareAttribute' => 'password','message' => '两次暗码不一致'],];
 }
 /**
  * Signs user up.
  *
  * @return User|null the saved model or null if saving fails
  */
 public function signup()
 {
  if ($this->validate()) {
   $user = new User();
   $user->username = $this->username;
   $user->email = $this->email;
   $user->setPassword($this->password);
   $user->generateAuthKey();
   if ($user->save()) {
    return $user;
   }
  }
  return null;
 }
}

以上就是本文的全部内容,帮助大家实现yii2.0验证功能.

《PHP实例:yii2.0实现验证用户名与邮箱功能》是否对您有启发,欢迎查看更多与《PHP实例:yii2.0实现验证用户名与邮箱功能》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读