IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Acl & Zend_Auth PHP Discussion :

Zend_Auth sous Zend1.9.6 [ZF 1.9]


Sujet :

Zend_Acl & Zend_Auth PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Par défaut Zend_Auth sous Zend1.9.6
    Salut à tous !
    J'utilise la nouvelle version de Zend Framework [1.9.6] mais j'ai du mal avec le Zend_Auth !
    En effet lors de mon authentification j'ai une erreur du type :

    The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity.
    A noter que je suis partie du Quickstart du Zend Framework

    Quelqu'un pour m'aider ?? voici le code des fichiers

    Merci

    index.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
    // Set the initial include_path. You may need to change this to ensure that 
    // Zend Framework is in the include_path; additionally, for performance 
    // reasons, it's best to move this to your web server configuration or php.ini 
    // for production.
    set_include_path(implode(PATH_SEPARATOR, array(
        realpath(dirname(__FILE__) . '/../library'),
        get_include_path(),
    )));
     
    // Define path to application directory
    defined('APPLICATION_PATH')
        || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
     
    // Define application environment
    defined('APPLICATION_ENV')
        || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
     
    /** Zend_Application */
    require_once 'Zend/Application.php';  
     
    // Create application, bootstrap, and run
    $application = new Zend_Application(
        APPLICATION_ENV, 
        APPLICATION_PATH . '/configs/application.ini'
    );
     
    $application->bootstrap();
    $application->run();

    bootstrap:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <?php
     
    /**
     * Application bootstrap
     * 
     * @uses    Zend_Application_Bootstrap_Bootstrap
     * @package QuickStart
     */
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
        /**
         * Bootstrap autoloader for application resources
         * 
         * @return Zend_Application_Module_Autoloader
         */
        protected function _initAutoload()
        {
            $autoloader = new Zend_Application_Module_Autoloader(array(
                'namespace' => 'Default',
                'basePath'  => dirname(__FILE__),
            ));
            return $autoloader;
        }
     
        /**
         * Bootstrap the view doctype
         * 
         * @return void
         */
        protected function _initDoctype()
        {
            $this->bootstrap('view');
            $view = $this->getResource('view');
            $view->doctype('XHTML1_STRICT');
        }
    }
    AuthController.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    <?php
    class AuthController extends Zend_Controller_Action
    {
    		//Initialisation
    	  	public function init()
        {
            $this->initView();
    		$this->view->baseUrl = $this->_request->getBaseUrl();
        }
     
    		//Action Index
    		public function indexAction()
        {
    	   $this->_redirect('/');
        }
     
    		//Action Login : Authentification de l'utilisateur
    		public function loginAction()
    	{
    			$this->view->title = "Authentification";
     
    			$this->view->message = '...Veuillez vous identifier...';
     
    			if ($this->_request->isPost()) {
    			//Collecte des données rentrées par l'utilisateur
    			$filter = new Zend_Filter_StripTags();
    			$login  = $filter->filter($this->_request->getPost('login'));
    			$pwd    = $filter->filter($this->_request->getPost('pwd'));
     
    			if (empty($login)) {
    			$this->view->message = '...Champ utilisateur manquant...';
    				} 
     
     
    				else {
     
    			// setup Zend_Auth adapter for a database table
    			Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable');
    			//$dbAdapter = Zend_Registry::get('dbAdapter');
    			$authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter());
     
    			$authAdapter->setTableName('intervenant');
    			$authAdapter->setIdentityColumn('login');
    			$authAdapter->setCredentialColumn('pwd');
    			$authAdapter->setCredentialTreatment("MD5(?)"); //Utilisation du MD5 pour la vérification du mot de passe
     
    			//Récupération des entrées pour réaliser l'authentification
    			$authAdapter->setIdentity($login);
    			$authAdapter->setCredential($pwd);
     
    			//Authentification
    			$auth = Zend_Auth::getInstance();
    			//$auth = Zend_Registry::get('auth');
    			$result = $auth->authenticate($authAdapter);
     
    			if ($result->isValid()) {
     
    			//Authentification Réussie : on stocke les informations de l'utilisateur sauf le mot de passe ! Redirection page Index
    			$data = $authAdapter->getResultRowObject(null, 'pwd');
    			$auth->getStorage()->write($data);
    			$this->_redirect('/');
     
    				} 	
    				else {
     
    			//Authentification Echouée : Affichage du message d'echec
    			$this->view->message = '...Echec Authentification (Utilisateur inconnu/Mot de passe incorrect)...';
    					}
    				}
    			}
     
    			$this->render();
    	}
     
    		//Action Logout : Déconnexion
    		public function logoutAction()
    	{
    		Zend_Auth::getInstance()->clearIdentity();
    		$this->_redirect('/');
    	}
     
    }
    application.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    [production]
    ; PHP settings we want to initialize
    phpSettings.display_startup_errors = 0
    phpSettings.display_errors = 0
     
    ; Make sure the following is on the include_path
    includePaths.library = APPLICATION_PATH "/../library"
     
    ; Indicate the path and classname of the bootstrap
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
     
    ; Bootstrap resources:
    ; - Front Controller
    ; - Layout
    ; - Database
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
    resources.view[] = 
    ;resources.db.adapter = "PDO_SQLITE"
    ;resources.db.params.dbname = APPLICATION_PATH "/../data/db/guestbook.db"
    resources.db.adapter = PDO_MYSQL
    resources.db.params.host = localhost
    resources.db.params.username = root
    resources.db.params.password = ""
    resources.db.params.dbname = zend_test
     
    [staging : production]
    ; Were you to have a 'staging' environment, you could customize application
    ; settings here
     
    [testing : production]
    ; For testing, we want to display errors and use a different database
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    resources.db.params.dbname = zend_test
     
    [development : production]
    ; For development, we want to display errors and use a different database
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
    resources.db.params.dbname = zend_test

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Par défaut
    Problème résolu !
    J'avais un soucis avec ma bdd !

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    Salut, j'ai fait exactement pareil que toi (quickstart + rob allen)
    et j'ai la même erreur(Zend_Auth_Adapter_DbTable).

    1/2 journée que je bataille dessus, je trouve toujours pas ce qui ne va pas.

    j'utilise mysql et zf 1.9.6 et le guestbook fonctionne très bien.

    Merci beaucoup !!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Par défaut
    Salut doobinay, j'ai bataillé dessus aussi pendant un moment !
    Mais le problème était lié à la base de donnée sous phpmyadmin et non au code !
    En effet quand je suis retournée dans ma base de donnée j'avais une erreur car ma requète ne reconnaissait pas le ENGINE = INNO DB d'ou une erreur, j'ai donc du la recréer ! Vérifie aussi que tes tables sont bien enregistrées comme il faut mais au niveau de l'adapter dans le AuthController c'est bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ..
    $dbAdapter = Zend_Db_Table::getDefaultAdapter();
    $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
    ..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  3. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45
  4. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57
  5. Réponses: 4
    Dernier message: 27/03/2002, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo