Zend Framework : Zend_Validate_Db_RecordExists 및 Zend_Validate_Db_NoRecordExists를 검사하여 데이터베이스 테이블의 열을 검사하여 양식의 값이 명명 된 열에 나타나는지 확인했습니다.Zend - 유효성 검사기를 사용하여 Zend_Form에서 사용자 이름 암호 조합을 확인할 수 있습니까?
동일한 행의 다른 열 값을 기준으로 행을 제외 할 수 있다는 것도 관찰했습니다.
암호가이 유효성 검사기를 사용하여 사용자 이름과 일치하는지 확인할 수 있습니까?
지금까지 내 양식에서 사용자가 올바른 사용자 이름과 올바른 비밀번호 (이 사용자 이름의 비밀번호는 필수적으로 아님)를 입력하면 양식에서 입력을 확인합니다. 분명히 로그인 양식이나 사용자 이름/토큰 활성화 양식의 경우 토큰 또는 비밀번호가 동일한 행의 사용자 이름과 일치해야합니다!
감사합니다.
$this->addElement('text', 'handle', array(
'label' => 'Username:',
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(
array(
'NotEmpty', true, array('messages' => 'You must enter your username.')
),
array(
'Db_RecordExists',
false,
array (
'member_activation',
'member_username'
)
)
)
));
$this->addElement('text', 'validationCode', array(
'label' => 'Code:',
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(
array(
'NotEmpty', true, array('messages' => 'You must enter your validation code.')
),
array(
'Db_RecordExists',
false,
array (
'member_activation',
'member_validationcode'
)
)
)
));
로그인 양식입니까? 그렇다면 Zend_Auth와 Zend_Auth_Adapter_DbTable을 사용하십시오. –
안녕하세요. 내가하려는 것은 실제로 계정을 활성화하기 위해 사용자 이름에 대한 토큰을 검증하는 양식입니다. 사용자가 계정을 만들고 이메일을 보낼 때 토큰을 만듭니다. 그들은 자신의 계정을 사용하기 위해 사용자 이름과 활성화 코드를 입력하기 위해이 양식으로 돌아갑니다. 토큰 필드에 유효성 검사를하지 않고 컨트롤러에 양식을 실행하고 폼에 접두어로 붙인 장식 메시지를 사용하여 유효성 검사를 실패하면 토큰 필드에서 유효성 검사기를 사용하여 오류 메시지를 표시 할 수 있습니다. 필드. 감사합니다. – 8bitjunkie
사용자 레코드를 가져 와서 수동으로 토큰의 유효성을 검사하고 일치하지 않는 경우 폼에 오류를 추가하는 것이 더 효율적일 수 있습니다. Db_RecordExists를 사용하면 필요하지 않은 토큰 열을 인덱싱하지 않으면 비효율적 일 수 있습니다. 그렇지 않으면 아마도 사용자 정의 유효성 검사기를 만들 수 있습니다. – drew010