реализация капчи в макете в yii2

Я использую форму «свяжитесь с нами» на странице макета. Это main.php макет страницы:

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

и в моем собственном виджете form я визуализировал файл представления:

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 всегда одинаково и не работает.

0

Решение

это раздел формы

 <?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>
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector