2009-04-03 4 views
0

'로그인/비밀번호가 잘못되었습니다'라는 오류 메시지가 표시되는 가장 좋은 방법은/로그인 폼 (Zend_Form)의 코드는 무엇입니까?ZF : 로그인 양식 확인

form/init()에서 $ this-> setErrorMessage ('Login/password incorrect')를 설정하는 것만으로는 충분하지 않고 필자가 설정 한 메시지를보기 위해 어떻게 든 Validator를 포함해야한다는 것을 이해하기 시작합니다. .

이 메시지를 어떤 객체에 바인딩해야합니까? 유효성 검사기를 사용해야합니까? 그렇지 않습니다. 감사합니다.

업데이트 :

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; 

답변

0

나는 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

난 보통 내 인증 양식을 충당하기 위해 두 검사를해야합니다.

  1. 확인 사용자 이름과 암호 중 하나가 설정되지 않은 경우, Zend_Auth를 사용

  2. 검증 자격 증명을 "사용자 이름과 암호를 모두 입력 해주십시오"하고는 유효하지 않은 경우 오류를 표시 같은 메시지를 표시 " 잘못된 사용자 이름 또는 암호 ".

일반적으로 메시지를 변수의보기로 전달하지만 FlashMessenger이 유용 할 수 있습니다.