如何使用Zend过滤器将我的POST数据过滤为SHA1值?我试图比较用户提交给我的数据库中的SHA1值的当前简单密码。Zend框架中的SHA1过滤器
我正在使用Identical Validator来比较值(从数据库呈现表单到用户之前)。我正在使用processAjax
来验证所有表单值。
如何使用Zend过滤器将我的POST数据过滤为SHA1值?我试图比较用户提交给我的数据库中的SHA1值的当前简单密码。Zend框架中的SHA1过滤器
我正在使用Identical Validator来比较值(从数据库呈现表单到用户之前)。我正在使用processAjax
来验证所有表单值。
你应该创建自己的过滤器来做到这一点:
class Sha1Filter implements Zend_Filter_Interface
{
public function filter($value)
{
return sha1($value);
}
}
之后,你可以把它添加任何其他过滤器
http://framework.zend.com/manual/en/zend.filter.writing_filters.html
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;
}
我实际上要使用它的用户的控制面板,以便用户可以更改他/她的密码。但是,感谢代码,我们将使用它进行身份验证:) – amree 2010-11-02 15:03:29