2012-02-14 47 views
0

在我的模型,“用户”,我已经验证用户名/密码Zend_Auth的工作不

$db = Zend_Db_Table::getDefaultAdapter(); 
$authAdapter = new Zend_Auth_Adapter_DbTable($db,'users','username','password'); 
$authAdapter->setIdentity($username); 
$authAdapter->setCredential(md5($password)); 
$auth_result = $authAdapter->authenticate(); 

if($auth_result->isValid()) 
{ 
    $auth = Zend_Auth::getInstance(); 
    $storage = $auth->getStorage(); 
    $storage->write($authAdapter->getResultRowObject(array('id','username'))); 

    return 'logged_in'; 
} 
return 'auth_failed'; 

它不断回报“AUTH_FAILED”后,以下授权。我的代码在本地主机上运行,​​并且一切正常,但是当我在线上载它时,它无法授权用户。到底是怎么回事?

感谢

+0

您是否将数据库与本地主机同步并在配置中设置了正确的用户/密码参数? – 2012-02-14 07:51:57

+0

是的!我可以在该表中注册并创建用户。 – user1083320 2012-02-14 08:09:02

+0

您可以从应用程序或注册phpmyadmin注册? – 2012-02-14 08:10:27

回答

0

我不能告诉什么是错的,而不签入日志,那么也许你会想用我用来存储身份验证数据的方法。基本上,你手动验证并设置存储空间这并不能解决问题,但在不访问代码的情况下不可能这样做。

function login($userNameSupplied,$passwordSupplied){ 
$table= new Application_Model_Dbtable_Users();//Or Whatever Table you're using 
$row=$table->fetchRow($table->select()->where('username=?',$userNameSupplied)->where('password=?',md5($passwordSupplied)); 
if($row){ 
Zend_Auth::getInstance()->getStorage()->write($row->toArray()); 
return 'logged_in'; 
} 
else{return 'failed';} 
} 


//To check if the user is logged in, use 
$userInfo=Zend_Auth::getInstance()->getStorage()->read(); 
if($userInfo)//user is logged in