ZF: проверка формы входа - PullRequest
       10

ZF: проверка формы входа

0 голосов
/ 03 апреля 2009

Какой самый лучший способ / код в форме входа (Zend_Form) для отображения сообщения об ошибке «Логин / пароль неверный»?

Я постепенно начинаю понимать, что установки $ this-> setErrorMessage ('Логин / пароль неверен') в форме / init () недостаточно, и мне как-то приходится привлекать Валидаторы, чтобы можно было увидеть сообщение, которое я установил.

С каким объектом я должен связать это сообщение и должен ли я использовать валидатор или нет? Спасибо!

Обновление:

Код LoginAction ():

$auth  = Zend_Auth::getInstance();
$authAdapter =
$this->_getAuthAdapter($formData['userName'],$formData['password']);
$result = $auth->authenticate($authAdapter);

if (!$result->isValid()) {
    //Problem: the line below doesn't display error message
    $form->addError('Username or password do not exist'); 
    $form->populate($formData);
    $this->view->form = $form;

Ответы [ 2 ]

0 голосов
/ 03 апреля 2009

Я думаю, вы ищете Zend_Form_Decorator_FormErrors декоратор. Так как этот декоратор не зарегистрирован по умолчанию на Zend_Form, вы должны зарегистрировать декоратор вручную.

Вы должны сделать что-то подобное в методе init() вашей формы:

$this->setDisableLoadDefaultDecorators(true);
$this->setDecorators(array(
    'FormElements',
    array('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')),
    'FormErrors',
    'Form'
));
0 голосов
/ 03 апреля 2009

У меня обычно есть только две проверки, чтобы покрыть мои формы аутентификации.

  1. Проверьте имя пользователя и пароль, и, если они не заданы, отобразите сообщение типа «Пожалуйста, введите имя пользователя и пароль»

  2. Проверьте учетные данные с помощью Zend_Auth и отобразите ошибку, если они недействительны: «Неверное имя пользователя или пароль».

Обычно я просто передаю сообщение представлению в переменной, но вы можете найти FlashMessenger полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...