yii2 验证码详细代码 [ 2.0 版本 ]
yii2 验证码详细代码,有错误请指出
控制器 层 LoginController.php
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use app\models\Login;
use app\models\ContactForm;
class LoginController extends Controller
{
public $enableCsrfValidation = false;
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
public function actionLogin()
{
// 验证码
$verify = new Login();
return $this->render('login', [
'verify' => $verify,
]);
}
}
models 层 Login.php
<?php
namespace app\models;
use Yii;
use yii\base\Model;
class Login extends Model
{
public $verifyCode;
/**
* @return array the validation rules.
*/
public function rules()
{
return [
// verifyCode needs to be entered correctly
['verifyCode', 'captcha'],
];
}
/**
* @return array customized attribute labels
*/
public function attributeLabels()
{
return [
'verifyCode' => '验证码',
];
}
}
view 层 login.php
<?php
use yii\bootstrap\ActiveForm;
use yii\captcha\Captcha;
?>
<div class="row">
<div class="col-lg-5">
<form action="">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($verify, 'verifyCode')->widget(Captcha::className(), [
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
]) ?>
<?php ActiveForm::end(); ?>
// 这里面可以加你想要的任何表单
<input type="submit" class="btn" value="提交"/>
</form>
</div>
</div>
iceluo
注册时间:2015-07-21
最后登录:2023-08-30
在线时长:854小时35分
最后登录:2023-08-30
在线时长:854小时35分
- 粉丝22
- 金钱10945
- 威望80
- 积分20285
热门源码
- 基于 Yii 2 + Bootstrap 3 搭建一套后台管理系统 CMF
- 整合完 yii2-rbac+yii2-admin+adminlte 等库的基础开发后台源码
- 适合初学者学习的一款通用的管理后台
- yii-goaop - 将 goaop 集成到 Yii,在 Yii 中优雅的面向切面编程
- yii-log-target - 监控系统异常且多渠道发送异常信息通知
- 店滴云1.3.0
- 面向对象的一小步:添加 ActiveRecord 的 Scope 功能
- Yii2 开源商城 FecShop
- 基于 Yii2 开发的多店铺商城系统,免费开源 + 适合二开
- leadshop - 基于 Yii2 开发的一款免费开源且支持商业使用的商城管理系统
共 5 条评论
嗯 收藏了
view 层 login.php template {label} 和 {error} 如何自定义?这两个没有解析直接显示,还请教如何自定义?
可以再models类里面定义
你看看下面代码,希望可以帮助到你
public function rules()
{ return [ // name, email, subject and body are required [['username'], 'required','message'=>'用户名不能为空'], [[ 'password'], 'required','message'=>'密码不能为空'], // verifyCode needs to be entered correctly ['verifyCode', 'required','message'=>'验证码不能为空'], ['verifyCode', 'captcha','message'=>'验证码不正确'], ]; }
加了,还是没有提示信息啊
@钟爱yii 你的包是2.0.6吗,如果是的话,有自带验证码的,你可以看看,好像是contact这个页面
@iceluo 恩,好的
field 里面单独定义 template 解决了
@iceluo 显示无效的参数,说viewsfile不存在,不知道怎么回事
Exception (Invalid Configuration) 'yii\base\InvalidConfigException' with message 'Invalid CAPTCHA action ID: site/captcha'
in C:\wamp\www\TrafficViolation\vendor\yiisoft\yii2\captcha\CaptchaValidator.php:81
这是什么问题呢?
前台验证成功,表单提交就提示验证码错误;原因可能是ajax验证一次 致使验证码在session中已经变了 再提交就提示错误了 怎么解决?
为什么图片不动啊