2010-11-02 84 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