[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почему не валидируется капча YII
lodas
Здравствуйте. Долго копался на просторах интернета, вижу сам я уже эту проблему не решу. Капча отображается, но при вводе значения что на картинке выдает ошибку:
Цитата
Неправильный код проверки.


1) rules:
//капча
array('verifyCode', 'captcha','allowEmpty'=> !CCaptcha::checkRequirements(),'on' => 'registr' ),


2) Кусочек контроллера:
    $msg="Ajax None";
$model=new User('registr');

// Для аякс валидации
if(isset($_POST['ajax']) && $_POST['ajax']==='user-form')
{
$msg="Ajax сработал";
echo CActiveForm::validate($model);
Yii::app()->end();
}

В контроллере есть одна особенность: поля input прекрасно валидируются аяксом без нажатия кнопик(отправки $_POST['User']), однако в этот кусочек кода не выполняется и всегда пишет: Ajax None
3) Виджет формы и капчи(view):
<?php $form=$this->beginWidget('CActiveForm', array(
'id' => 'user-form',
'enableAjaxValidation' => true,
'enableClientValidation' => true,
'clientOptions' => array(
'validateOnSubmit' => true,
'validateOnChange' => true,
),
));
?>

<script type="text/javascript" src="<?php Yii::app()->theme->getBaseUrl();?>/assets/5536bfed/jquery.yiiactiveform.js"></script>


<
p class="note">Поля помеченные <span class="required">*</span> обязательны для заполнения.</p>

<
div class="row3">
<?php echo $form->labelEx($model,'Почта*',array('class'=>'sear')); ?>
<?php
echo $form->labelEx($model,'Логин*',array('class'=>'sear')); ?>
<?php
echo $form->labelEx($model,'Пароль*',array('class'=>'sear')); ?>
<?php
echo $form->labelEx($model,'Повторите пароль*',array('class'=>'sear','caption'=>'Повторите пароль')); ?>
</div>
<
div class="row2">
<?php echo $form->textField($model,'email',array('size'=>45,'maxlength'=>45)); ?>
<?php
echo $form->textField($model,'login',array('size'=>45,'maxlength'=>45)); ?>
<?php
echo $form->passwordField($model,'password',array('size'=>45,'maxlength'=>45)); ?>
<?php
echo $form->passwordField($model,'password_repeat',array('size'=>45,'maxlength'=>45)); ?>
</div>
<
div class="row4">

<?php echo $form->error($model,'email'); ?>
<?php
echo $form->error($model,'login'); ?>
<?php
echo $form->error($model,'password'); ?>
<?php
echo $form->error($model,'password_repeat'); ?>
</div>


<
div class="row_but">
<?=CHtml::submitButton('Зарегистрироваться', array('id' => "submit")); ?>
</div>
<?php $this->endWidget(); ?>

<!--Капча начало-->
<?php if(CCaptcha::checkRequirements()): /*проверка загружена ли каптча*/ ?>
<div class="row6">
<?php echo $form->labelEx($model,'verifyCode'); /*вывод текстовой метки verifyCode*/?>
<div>
<?php $this->widget('CCaptcha',array('id'=>'capchas')); /*выводим саму каптчу*/?>
<?php
echo $form->textField($model,'verifyCode'); /*выводим текстовое поле для ввода каптчи*/?>
</div>
<
div class="hint">
Пожалуйста, введите буквы, как они показаны на рисунке выше
</div>
<?php
echo $form->error($model, 'verifyCode');
?>
</div>
<?php endif; ?>
<!--Капча конец-->

Могу предположить что эти виджеты должны быть один в другом, но я не знаю как этого сделать?
И почему капча мне всегда выдает сообщение о не правильном коде, когда я всегда в ввожу правильный?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.