> 백엔드 개발 > PHP 튜토리얼 > yii 验证码的使用和验证过程,yii验证码验证过程_PHP教程

yii 验证码的使用和验证过程,yii验证码验证过程_PHP教程

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-07-12 09:04:45
원래의
930명이 탐색했습니다.

yii 验证码的使用和验证过程,yii验证码验证过程

如果要实现这个过程的话,需要几个步骤

第一步就是controller的操作

在要操作的控制器中添加如下代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

public function actions(){

return array(

// captcha action renders the CAPTCHA image displayed on the contact page

'captcha'=>array(

'class'=>'CCaptchaAction',

'backColor'=>0xFFFFFF,

'maxLength'=>'8', // 最多生成几个字符

'minLength'=>'7', // 最少生成几个字符

'height'=>'40',

'width'=>'230',

),

);

 

}

 

public function accessRules(){

return array(

array('allow',

'actions'=>array('captcha'),

'users'=>array('*'),

),

);

}

로그인 후 복사

  

第二步就是view的操作

在要显示验证码的地方添加如下代码:

1

2

3

4

5

6

7

8

9

10

11

12

<div class="control-group">

<?php $this->widget('CCaptcha',array(

'showRefreshButton'=>true,

'clickableImage'=>false,

'buttonLabel'=>'刷新验证码',

'imageOptions'=>array(

'alt'=>'点击换图',

'title'=>'点击换图',

'style'=>'cursor:pointer',

'padding'=>'10')

)); ?>

</div>

로그인 후 복사


第三步就是LoginForm的操作

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

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

<?php

 

/**

* LoginForm class.

* LoginForm is the data structure for keeping

* user login form data. It is used by the 'login' action of 'SiteController'.

*/

class LoginForm extends CFormModel

{

public $username;

public $password;

public $rememberMe;

public $verifyCode;

private $_identity;

 

/**

* Declares the validation rules.

* The rules state that username and password are required,

* and password needs to be authenticated.

*/

public function rules(){

return array(

// username and password are required

//  array('username, password', 'required'),

array('username','required','message'=>'登录帐号不能为空'),

array('password','required','message'=>'密码不能为空'),

array('verifyCode','required','message'=>'验证码不能为空'),

array('verifyCode','captcha', 'on'=>'login','allowEmpty'=>!Yii::app()->admin->isGuest),

// rememberMe needs to be a boolean

array('rememberMe', 'boolean'),

// password needs to be authenticated

array('password', 'authenticate'),

);

}

 

/**

* Declares attribute labels.

*/

public function attributeLabels()

{

return array(

'rememberMe'=>'下次记住我',

'verifyCode' =>'验证码'

);

}

 

/**

* Authenticates the password.

* This is the 'authenticate' validator as declared in rules().

*/

public function authenticate($attribute,$params)

{

if(!$this->hasErrors())

{

$this->_identity=new UserIdentity($this->username,$this->password);

if(!$this->_identity->authenticate())

$this->addError('password','帐号或密码错误.');

}

}

 

public function validateVerifyCode($verifyCode){

if(strtolower($this->verifyCode) === strtolower($verifyCode)){

return true;

}else{

$this->addError('verifyCode','验证码错误.');

}

}

 

 

/**

* Logs in the user using the given username and password in the model.

* @return boolean whether login is successful

*/

public function login(){

if($this->_identity===null){

$this->_identity=new UserIdentity($this->username,$this->password);

$this->_identity->authenticate();

}

if($this->_identity->errorCode===UserIdentity::ERROR_NONE){

$duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days

Yii::app()->user->login($this->_identity,$duration);

return true;

}else{

return false;

}  

}

}

로그인 후 복사

  

第四步,实现验证的过程,那么具体的查看我自己的写的一个方式,在第三部已经写好了
validateVerifyCode就是啦,可以在controller里面调用

我的调用如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

public function actionLogin(){

$model=new LoginForm;

if(isset($_POST['ajax']) && $_POST['ajax']==='login-form'){

echo CActiveForm::validate($model);

Yii::app()->end();

}

 

if(isset($_POST['LoginForm'])){

$model->attributes=$_POST['LoginForm'];

// validate user input and redirect to the previous page if valid

if($model->validate() &&

$model->validateVerifyCode($this->createAction('captcha')->getVerifyCode()) &&

$model->login()){

$this->redirect(CController::createUrl('default/index'));

}

 

}

$this->render('login',array('model'=>$model));

}

로그인 후 복사

  

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1072009.htmlTechArticleyii 验证码的使用和验证过程,yii验证码验证过程 如果要实现这个过程的话,需要几个步骤 第一步就是controller的操作 在要操作的控制器中...
관련 라벨:
yii
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿