gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章yii2.0实现验证用户名与邮箱功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

视图signup.php代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
 
/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model \frontend\models\SignupForm */
 
$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 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public function actionSignup()
  {
   $model = new SignupForm();
  
   $model ->load( $_POST );
   if (Yii:: $app ->request->isAjax) {
    Yii:: $app ->response->format = \yii\web\Response::FORMAT_JSON;
    return \yii\bootstrap\ActiveForm::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 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
use common\models\User;
use yii\base\Model;
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' ],
    [ 'username' , 'unique' , 'targetClass' => '\common\models\User' , 'message' => '用户名已存在.' ],
    [ 'username' , 'string' , 'min' => 2, 'max' => 255],
 
    [ 'email' , 'filter' , 'filter' => 'trim' ],
    [ 'email' , 'required' ],
    [ 'email' , 'email' ],
    [ 'email' , 'unique' , 'targetClass' => '\common\models\User' , 'message' => '邮箱名已存在.' ],
 
    [[ 'password' , 'password_compare' ], 'required' ],
    [[ 'password' , 'password_compare' ], 'string' , '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验证功能.

最后此篇关于yii2.0实现验证用户名与邮箱功能的文章就讲到这里了,如果你想了解更多关于yii2.0实现验证用户名与邮箱功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com