这是有史以来最令人沮丧的。当你得到的只是一个白屏时,几乎不可能找到错误!!!
此代码用于其他项目,并且在语法上可以正常工作,它是正确的。但是配置中一定有问题...
这是代码:
protected function _process($values)
{
// Get our authentication adapter and check credentials
$adapter = $this->_getAuthAdapter();
$adapter->setIdentity($values['username']);
$adapter->setCredential($values['password']);
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($adapter);
if ($result->isValid()) {
$user = $adapter->getResultRowObject();
$auth->getStorage()->write($user);
return true;
}
return false;
}
protected function _getAuthAdapter()
{
$dbAdapter = Zend_Db_Table::getDefaultAdapter();
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('Users')
->setIdentityColumn('username')
->setCredentialColumn('password')
->setCredentialTreatment('md5(?)');
return $authAdapter;
}
这是在我的身份验证控制器中,并在我设置适配器等后被调用。如果我放了一个 die("foo"); 在 $result 行之前,我看到了。如果我把它放在 $result 行之后,我会得到一个 WSOD 并且系统停止。我知道这里没有足够的人来调试我的代码,但我希望其他人有这个问题,并且可以给我一个提示,告诉我如何解决这个问题???我已经仔细检查了数据库、列名等。我需要知道什么样的事情可能会导致这条线:
$result = $auth->authenticate($adapter);
导致白屏死机???有任何想法吗?我在 application.ini 中打开了所有错误显示。
我在这台服务器上运行 Zend 1.11.12。这有什么区别吗?它正在运行的服务器正在运行 1.12.0-9
感谢您可能有的任何想法。
编辑::: 我为我的 _getAuthAdapter 添加了代码。