1

Zendフレームワークから始めて、Zend_Auth_Adapter_DbTableを使用してユーザーを認証したいと思いました...

ドキュメントを確認しましたが、非常に簡単に見えますが、エラーが発生します。

これが私のコードスニペットです:

$adapter = new Zend_Auth_Adapter_DbTable($this->_dbAdapter, 'users', 'username', 'password', 'MD5(?)');

'username'列と'password'列を持つ'users'テーブルがありますが、実行するたびに

$result = $adapter->authenticate();

アプリケーションエラーが発生します:

Message: The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity.

誰かがこれで私を助けることができますか?基本認証が必要です(パスワードはmd5を使用して暗号化されています)

奇妙なことに、次のように動作します...

$adapter = new Zend_Auth_Adapter_DbTable($this->_dbAdapter); $adapter->setTableName('users') ->setIdentityColumn('username') ->setCredentialColumn('password') ->setIdentity($username) ->setCredential(md5($password)); 

しかし、なぜ「setCredentialTreatment」(または最初のコードスニペットのようにそれを使用する)メソッドが失敗するのですか...

mySQLではなくsqlite3を使用しているからですか?

ありがとう

4

1 に答える 1

4

そのように見える。SQLite で使用MD5()するには、Tcllib と Tlf が必要です。

于 2009-12-02T11:55:12.490 に答える