阿江
- 阿江 2017-04-25 已签到连续签到37天,获得了20个金钱
php7没用过,不清楚,我的是5.6
- 阿江 回答了问题 model里面的 hasOne 该怎么缓存?
可以看看Yii2缓存文档,里面有专门针对SQL的缓存,用到你这个应该是可以的
$model = new EntryForm; $model = new EntryForm();
这两种写法都是可以的,后面这个可以加初始化参数。PHP是弱类型语言,很弱很弱!
- 阿江 回答了问题 Yii2的Captcha使用Ajax进行验证出错
解决掉了,解决方法参见:
Yii2验证码Captcha使用Ajax无法验证的处理方法 - 阿江 回答了问题 模型验证规则能不能做到post的数据中?
楼上 @drodata 正解!
- 阿江 回答了问题 Yii2的Captcha使用Ajax进行验证出错
D:\phpwork\news\vendor\yiisoft\yii2\captcha\CaptchaAction.php
public function validate($input, $caseSensitive) { $code = $this->getVerifyCode(); $valid = $caseSensitive ? ($input === $code) : strcasecmp($input, $code) === 0; $session = Yii::$app->getSession(); $session->open(); $name = $this->getSessionKey() . 'count'; $session[$name] = $session[$name] + 1; if ($valid || $session[$name] > $this->testLimit && $this->testLimit > 0) { $this->getVerifyCode(true); } return $valid; }
看了看yii2的验证代码,验证过后session是被改变了的,有captcha的表单中怎么使用Ajax验证呢?
- 阿江 回答了问题 Yii2的Captcha使用Ajax进行验证出错
D:\phpwork\news\views\site\register.php
<?php $form = ActiveForm::begin([ 'id' => 'contact-form', 'enableAjaxValidation'=>true, ]); ?> <?= $form->field($model, 'member')->textInput(['autofocus' => true])->hint('Can be chinese,grapheme or number.Only use to login,not public display!') ?> <?= $form->field($model, 'memkey')->passwordInput() ?> <?= $form->field($model, 'memkey_repeat')->passwordInput() ?> <?= $form->field($model, 'nickname')->textInput()->hint('Can be chinese,grapheme or number,can have blank space.For public display only!') ?> <?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [ 'captchaAction'=>'site/captcha', 'imageOptions'=>['alt'=>'点击换图','title'=>'点击换图', 'style'=>'cursor:pointer'], 'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>', ]) ?> <div class="form-group"> <?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?> </div> <?php ActiveForm::end(); ?>
- 阿江 回答了问题 同一账号,如何实现另一用户登陆后,之前用户自动下线
在loginAfter()时在数据库中存一个最新的登录码,把这个登录码存到客户端的cookie(用session也可以)中,每次访问时比对一下,不一样,则自动logout(),不过要小心,这种自动logout()的有客户会感觉很不爽。