【问题标题】:implementing capecha in layout in yii2在yii2布局中实现capecha
【发布时间】:2017-02-28 02:28:36
【问题描述】:

我在布局页面中使用了“联系我们”表单。这是main.php 布局页面:

<footer class="footer">
   <div class="container" style="background-color: #F5F5F5">
      <?= \frontend\mostafa\formWidget::widget(); ?>

在我的自定义 formWidget 中,我渲染了一个视图文件:

class formWidget extends \yii\base\Widget{
...
return $this->render('post',['model'=>$model])

而 post.php 是:

<?= $form->field($model, 'verifyCode', ['template' => '{label}'])->widget(Captcha::className(), [
    'template' => '<div class="col-xs-12">{image}</div><div class="col-xs-12">{input}</div>',
    'options' => [
        'placeholder' => 'CAPTCHA Code',
        'class' => 'form-control',
    ],
]) ?>

我的问题是:

  1. 因为我使用小部件来验证表单,我应该在哪里设置CaptchaAction
  2. 为什么验证码总是显示不正确的信息?
  3. Captcha 图片总是一样的,而且不起作用。

【问题讨论】:

  • 为什么布局中有验证码?
  • 您的表单有任何 ajax 验证
  • 1) 为什么在布局中使用验证码?如果您在布局中使用它,验证码将出现在您调用布局的任何地方。我建议在联系表格中调用布局并在联系表格中使用验证码,看看它是如何进行的,如果有任何疑问,请发表您的疑问..
  • @MohanPrasad 不确定你在说什么。我的意思是“在联系表格中调用布局并在联系表格中使用验证码”部分。如何在联系表单中调用布局?
  • 我的错我的意思是查看页面...

标签: php yii yii2 widget captcha


【解决方案1】:

这是表单部分

 <?php
$form = ActiveForm::begin([
'id'                     => 'registration-form',
'enableAjaxValidation'   => true,
'enableClientValidation' => false]);
?>
<div class="col-lg-4" style="width: 50%;">
    <?= $form->field($model, 'name', ['template' => "{input}\n{hint}\n{error}"])->textInput(['placeholder' => $model->getAttributeLabel('name')]); ?>
</div>

<div class="col-lg-4" style="width: 50%;">
    <?= $form->field($model, 'email', ['template' => "{input}\n{hint}\n{error}"])->textInput(['placeholder' => $model->getAttributeLabel('email')]); ?>
</div>
<div class="col-lg-4" style="width: 100%;">
    <?php echo $form->field($model, 'subject')->textInput(['maxlength' => 255, 'id' => 'contact_form', 'placeholder' => $model->getAttributeLabel('subject')])->label(false) ?>
    <?= $form->field($model, 'body')->textArea(['rows' => 3, 'placeholder' => $model->getAttributeLabel('body')])->label(false) ?>
    <?= $form->field($model, 'verifyCode', ['template' => '{label}'])->widget(Captcha::className(), [
'template' => '<div class="col-xs-12">{image}</div><div class="col-xs-12">{input}</div>',
'options' => ['placeholder' => 'CAPTCHA Code', 'class' => 'form-control']]) ?>
    <div class="form-group" style="float: right">
    <?= Html::submitButton( 'sending',['class' => 'btn btn-info', 'name' => 'contact-button']) ?>
    </div>    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多