0

Zendフレームワークとデータベースとの接続に問題があります。ログインを作成しようとしています。テーブルが作成され、コードは明らかに問題ありませんが、次のようになります。

An error occurred
Application error
Exception information:

Message: SQLSTATE[HY000] [1045] Access denied for user 'onetag51_teste'@'localhost' (using  password: YES)
Stack trace:

#0 C:\xampp\Zend\library\Zend\Db\Adapter\Pdo\Mysql.php(109):   Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 C:\xampp\Zend\library\Zend\Db\Adapter\Abstract.php(860): Zend_Db_Adapter_Pdo_Mysql->_connect()
#2 C:\xampp\Zend\library\Zend\Db\Adapter\Abstract.php(930): Zend_Db_Adapter_Abstract->quote('pass1', NULL)
#3 C:\xampp\Zend\library\Zend\Auth\Adapter\DbTable.php(449): Zend_Db_Adapter_Abstract->quoteInto('`password` = ?', 'pass1')
#4 C:\xampp\Zend\library\Zend\Auth\Adapter\DbTable.php(368): Zend_Auth_Adapter_DbTable->_authenticateCreateSelect()
#5 C:\xampp\Zend\library\Zend\Auth.php(117): Zend_Auth_Adapter_DbTable->authenticate()
#6 C:\xampp\htdocs\Eulen\application\controllers\AuthenticationController.php(27): Zend_Auth->authenticate(Object(Zend_Auth_Adapter_DbTable))
#7 C:\xampp\Zend\library\Zend\Controller\Action.php(516): AuthenticationController->logininAction()
#8 C:\xampp\Zend\library\Zend\Controller\Dispatcher\Standard.php(308): Zend_Controller_Action->dispatch('logininAction')
#9 C:\xampp\Zend\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#10 C:\xampp\Zend\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#11 C:\xampp\Zend\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#12 C:\xampp\htdocs\Eulen\public\index.php(26): Zend_Application->run()
#13 {main}  

Request Parameters:

array (
'controller' => 'authentication',
'action' => 'loginin',
'module' => 'default',
 )  

私は解決策を探していましたが、考えられるエラーのいくつかは、スペルミス (何も見つかりませんでした)、パスとユーザーを使用して phpmyadmin に接続できない (phpmyadmim サイトにアクセスすると、ユーザー名とパスワード)。

いくつかの解決策を試しましたが、わかりません。

私は何かが欠けていますか?

ファイル config.ini:

 resources.db.params.charset = "utf8"
 resources.db.adapter = "pdo_mysql"
resources.db.params.host = localhost
resources.db.params.username = "onetag51_teste"
resources.db.params.password = "*******"
resources.db.params.dbname = "onetag51_eulenhugo"

ここに authenticationcontroller を配置することをお勧めします。おそらく問題はそこにあります..

 <?php

 class AuthenticationController extends Zend_Controller_Action
{

 public function init()
 {
    /* Initialize action controller here */
}

public function indexAction()
{
    // action body
}

public function logininAction()
{
    // action body
    $authAdapter =$this->getAuthAdapter();
    $username='hugo';
    $password='pass1';

    $authAdapter->setIdentity($username)
                ->setCredential($password);

    $auth =Zend_Auth::getInstance();
    $result = $auth->authenticate($authAdapter);
    if($result->isValid())
    {
        echo 'valid';
    }
    else
    {
        echo 'invalid';
    }
}

public function logoutAction()
{
    // action body
}
private function  getAuthAdapter()
{
    $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter());
    $authAdapter->setTableName('users')
                ->setIdentityColumn('username')
                ->setCredentialColumn('password');

    return $authAdapter;
}              


}

私の友人と話していて、zend を介して phpmyadmim にアクセスするための許可を設定する必要があると彼は私に言いました...

どうやってやるの?

4

2 に答える 2

0

したがって、問題は特権に関連していました。ARJMP のおかげで、特権を変更しようとしましたが、ホストが許可しなかったため、xamp を使用してローカル データベースを作成し、xamp で作成したデータベースでログインを試みました。 、そしてそれはうまくいきました...

于 2013-02-23T03:31:50.580 に答える
0

構成ファイルで、アダプター、ユーザー名、パスワード、およびデータベース名を引用符で囲む必要はありません。私は私のものではありません。これが役立つことを願っています。

ユーザー @ 'localhost' からデータベースへのアクセスが拒否されました' '

データベース (つまり Web ページ) への外部アクセスが必要な場合は、ユーザーに権限を付与する必要があります。答えで。

ユーザーをmysqlのデータベースに追加することに関するこのリンクもあります。

お役に立てれば

于 2013-02-05T13:13:15.853 に答える