2010-11-02 60 views
1

如何使用Zend过滤器将我的POST数据过滤为SHA1值?我试图比较用户提交给我的数据库中的SHA1值的当前简单密码。Zend框架中的SHA1过滤器

我正在使用Identical Validator来比较值(从数据库呈现表单到用户之前)。我正在使用processAjax来验证所有表单值。

回答

1

zerkms'答案是正确的。

但是,我会建议不要使用过滤器来做到这一点。你应该为此使用Zend_Auth。简单的例子:

$adapter = new Zend_Auth_Adapter_DbTable($db); 
$adapter->setTableName('users'); 
$adapter->setIdentityColumn('username'); 
$adapter->setCredentialColumn('password'); 
$adapter->setCredentialTreatment('SHA1(password)'); 
$adapter->setIdentity($form->getValue('username')); 
$adapter->setCredential($form->getValue('password')); 

$result = $auth->authenticate($adapter); 
switch ($result->getCode()) { 
    case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND: 
     // do something 
     break; 
    case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID: 
     // do something 
     break; 
    case Zend_Auth_Result::SUCCESS: 
     // do something 
     break; 
    default: 
     // do something 
     break; 
} 
+0

我实际上要使用它的用户的控制面板,以便用户可以更改他/她的密码。但是,感谢代码,我们将使用它进行身份验证:) – amree 2010-11-02 15:03:29