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 :

Erreur URL requise non trouvée auth/login


Sujet :

Zend_Acl & Zend_Auth PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut Erreur URL requise non trouvée auth/login
    Bonjour,
    Le tutoriel "Débutez avec Zend_Auth" fonctionne mais quand je veux l'utiliser dans mon application, j'ai une erreur :
    L'URL requise n'a pu etre trouvée sur ce serveur. La référence sur ">la page citée semble être erronée ou perimée. Nous vous prions d'informer l'auteur de ">cette page de cette erreur. Si vous avez tapé l'URL à la main, veuillez vérifier l'orthographe et réessayer.
    Quand je passe la souris sur ">la page citée", la barre d'état m'affiche ceci :
    http://localhost/html/monsite/auth/<!--#echo encoding=
    J'ai beau parcourir le code, je ne vois pas de différence notable avec celui du tutoriel.
    La seule différence entre les deux application est que le tuto est sur http://localhost/zf-tutoriel et mon appli sur http://localhost/html/monsite

    Que signifie le message d'erreur et surtout ce qui apparaît dans la barre d'état alors que la redirection doit se faire sur auth/login ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Montrez-nous un peu de code, car là il semble que vous essayez de passer comme variable un commentaire Html !

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    J'ai juste légèrement adapté le code du tuto à mon application mais les instructions sont les mêmes.
    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
    /*
     * AuthController.php
     * Contrôleur de connexion à Mnémosis
     * 
     * Créé le 23 janv. 2010 d'après le tutoriel 'Débutez avec Zend_Auth
     * 
     *
     */
    class AuthController extends Zend_Controller_Action
    {
        function init()
        {
            $this->initView();
            $this->view->baseUrl = $this->_request->getBaseUrl();
        }
     
        function indexAction()
        {
            $this->_redirect('/');
        }
     
        function loginAction()
        {
            $this->view->message = '';
     
            if ($this->_request->isPost()) 
            {
                // collect the data from the user
                Zend_Loader::loadClass('Zend_Filter_StripTags');
                $f = new Zend_Filter_StripTags();
                $username = $f->filter($this->_request->getPost('username'));
                $password = $f->filter($this->_request->getPost('password'));
     
                if (empty($username)) 
                {
                    $this->view->message = 'Veuillez donner votre perso Swing.';
                } 
                else 
                {
                    // setup Zend_Auth adapter for a database table
                    Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable');
                    $dbAdapter = Zend_Db_Table::getDefaultAdapter();
                    $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
                    $authAdapter->setTableName('Joueur');
                    $authAdapter->setIdentityColumn('J_Nom');
                    $authAdapter->setCredentialColumn('J_MotPasse');
     
                    // Set the input credential values to authenticate against
                    $authAdapter->setIdentity($username);
                    $authAdapter->setCredential(md5($password));
     
                    // do the authentication
                    $auth = Zend_Auth::getInstance();
                    $result = $auth->authenticate($authAdapter);
     
                    if ($result->isValid()) 
                    {
                        // success: store database row to auth's storage
                        // system. (Not the password though!)
                        $data = $authAdapter->getResultRowObject(null, 'password');
                        $auth->getStorage()->write($data);
                        $this->_redirect('/');
                    } 
                    else 
                    {
                        // failure: clear database row from session
                        $this->view->message = "Perso Swing ou mot de passe incorrect.";
                    }
                }
            }
     
            $this->view->title = 'Connexion à Mnémosis';
            $this->render();
        }
     
        function logoutAction()
        {
            Zend_Auth::getInstance()->clearIdentity();
            $this->_redirect('/');
        }
    }
    ?>
    auth/login.phtml :
    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
    <?php
    /*
     * login.phtml
     * Formulaire de login
     * 
     * Créé le 19 avr. 2010
     * 
     *
     */
    ?>
    <?php //echo $this->render('header.phtml'); ?>
    <h1><?php echo $this->escape($this->title); ?></h1>
    <?php if(!empty($this->message)) :?>
        <div id="message">
            <?php echo $this->escape($this->message);?>
        </div>
    <?php endif; ?>
    <form action="<?php echo $this->baseUrl ?>/auth/login" method="post">
    <div>
        <label for="username">Nom joueur Swing :</label>
        <input type="text" name="username" value=""/>
    </div>
    <div>
        <label for="password">Mot de passe :</label>
        <input type="password" name="password" value=""/>
    </div>
    <div id="formbutton">
        <input type="submit" name="login" value="Login" />
    </div>
    </form>
    <?php //echo $this->render('footer.phtml'); ?>
    IndexController :
    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
    <?php
    /*
     * indexController.php
     * DContrôleur de la page d'accueil de Mnémosis'
     * 
     * Créé le 13 janv. 2010 d'après indexController du tuto débuter Zend MVC'
     * 
     *
     */
     
    class IndexController extends Zend_Controller_Action 
    {
        /*
         * init
         * Initialise le controlleur d'index
         */
        function init()
        {
            $this->initView();
            //Zend_Loader::loadClass('Joueur');
            $this->view->baseUrl = $this->_request->getBaseUrl();
            $this->view->user = Zend_Auth::getInstance()->getIdentity();
        }
     
        /*
         * preDispatch
         * 
         */
        function preDispatch()
        {
            $auth = Zend_Auth::getInstance();
     
            if (!$auth->hasIdentity()) 
            {
                $this->_redirect('auth/login');
            }
        }
     
        /*
         * indexAction
         * Affiche la page d'accueil
         */
        function indexAction()
        {
            $this->view->title = "Accueil";
        } //Fin function indexAction
     
        /*
         * connecterAction
         * Gère la connexion de l'utilisateur
         */
        function connecterAction()
        {
            $this->view->title = "Connexion";
        } // Fin function connecterAction
     
    } // Fin class IndexController
    ?>
    EDIT :
    Si je commente (/* */) la fonction preDispatch dans IndexController.php, la vue s'affiche. C'est donc dans le déroulement du preDispatch que ça cafouille.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Je revient sur ton souci.

    Tu ne peux pas passer par un plugin

    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
     
    class My_Login_Connexion extends Zend_Controller_Plugin_Abstract {
     
        public function preDispatch(Zend_Controller_Request_Abstract $request) {
     
            if(!Zend_Auth::getInstance()->hasIdentity()) {
     
                $request->setControllerName('Login');
                $request->setActionName('index');
     
            }
     
        }
     
    }

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Tu ne peux pas passer par un plugin
    C'est une question ou une affirmation ?
    Etant sous Winbug, je n'ai pas l'appli sous la main mais je ne pense pas avoir de plugin dans mon code.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    C'était un question, pourquoi ne pas passer par ce genre de Plugin pour éviter de reporter le code de controller en controller.

Discussions similaires

  1. Message d'erreur "explorasi.exe" non trouvé
    Par hocine dans le forum Windows XP
    Réponses: 1
    Dernier message: 25/10/2007, 18h57
  2. Erreur : Classe TStoredProc non trouvée
    Par Sunchaser dans le forum C++Builder
    Réponses: 1
    Dernier message: 24/11/2006, 00h03
  3. bdd : erreur 3265 élément non trouvé dans cette collection
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/07/2006, 09h52
  4. Erreur de "Élément non trouvé dans cette collection"
    Par charleshbo dans le forum Access
    Réponses: 4
    Dernier message: 04/05/2006, 18h42
  5. [Debutant][Install][VS]erreur sur fichier non trouvé.
    Par silvermoon dans le forum DirectX
    Réponses: 4
    Dernier message: 16/07/2004, 20h59

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