ZF: Giriş Formu Doğrulama

2 Cevap php

Hata mesajı 'hatalı Giriş / şifre' gösterilecek Giriş Formu (Zend_Form) en iyi yolu / kodu nedir?

Ben yavaş yavaş form / init bu ayarı $ this-> setErrorMessage ('Giriş / şifre yanlış'), anlamaya başlar () yeterli değil ve ben nedense set mesajı görmek mümkün Doğrulayıcıları içermelidir.

To which object should I bind this message and do I have to use validator or not? Thanks!

Güncelleme:

LoginAction () kodu:

$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 Cevap

Sana Zend_Form_Decorator_FormErrors dekoratör arıyoruz düşünüyorum. Bu dekoratör varsayılan olarak kayıtlı değil gibi Zend_Form elle dekoratör kayıt var.

Siz form init() yönteminde böyle bir şey yapmak zorunda:

$this->setDisableLoadDefaultDecorators(true);
$this->setDecorators(array(
    'FormElements',
    array('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')),
    'FormErrors',
    'Form'
));

Ben genellikle benim kimlik doğrulama formları kapsayacak şekilde sadece iki çekler var.

  1. "Kullanıcı adınızı ve parolanızı girin" gibi kullanıcı adınızı ve şifrenizi kontrol edin ve ya ayarlı değilse, bir mesaj görüntüleyebilir

  2. Zend_Auth kullanarak kimlik bilgilerini doğrulamak ve bunlar geçersiz eğer bir hata görüntüler: "Geçersiz kullanıcı adı veya şifre."

Ben normalde sadece bir değişken görünümüne mesaj geçmek, ancak bir FlashMessenger yararlı olabilir.