Oracle 接続で zend:auth アダプターを使用しています。ログイン時にユーザーを認証しようとしています。ユーザーが通常の英数字を入力すると、認証は問題なく行われますが、パスワードがこのようなものである場合 (たとえば) IUCJAC\_
、認証の検証は false を返します。
私が試してみました:
- Zend_View::escape();
- Zend_DB_Adapter::quote();
- PHPのaddslashed();
無駄に。
何か案は?
public function authAction()
{
//Returns encrypted password
$newpass = new Application_Model_Discoverpw();
$this->getHelper('viewRenderer')->setNoRender();
if(!empty($_POST))
{
$password =$newpass->encode_password(trim($_POST['password']));
$slashedPW = $db->quote($password);
$formValues = array(
'email' => $_POST['email'], 'password' => $slashedPW);
if ($this->_process($formValues)) {
// We're authenticated! Redirect to the home page
//echo '{"success":true}';
$this->_helper->redirector('index', 'sam');
//$this->_helper->redirector('index', 'index');
} else {
throw new Zend_Auth_Exception('Login failed! '. $sql);
//echo 'oh no!';
}
} else {
//Redirect to login page if no $_POST values found
$this->_helper->redirector('login', 'userauth');
}
}