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

Bibliothèques et frameworks PHP Discussion :

Problème avec les logins


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éprouvé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 353
    Points : 1 264
    Points
    1 264
    Par défaut Problème avec les logins
    Salut tout le monde !

    Je me tourne vers vous car j'ai un problème que je n'arrive pas à résoudre.

    Je m'explique :

    J'ai crée un formulaire de connexion afin de pouvoir accéder à mon backoffice.
    Une fois que je suis connecté en admin, tout va bien, je peux modifier / supprimer une page et je peux accéder au site et voir les pages.
    Par contre, là où je ne comprends par, c'est que dès que je ne suis plus connecté, je suis automatiquement redirigé vers la page de login et ce, même si j'accède au pages du site qui sont censées êtres visible par tous.

    Voici mes codes :

    UsersController
    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
     
    <?php
    class UsersController extends AppController
    {
        //Fonction qui permet de se loguer
        function login()
        {
            if($this->request->is('post'))
            {
                if($this->Auth->login())
                    return $this->redirect('/admin');
            }
        }
     
        //Fonction qui permet de déloguer
        function logout()
        {
            $this->Auth->logout();
            $this->redirect('/');
        }
    }
    AppController
    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
     
    <?php
    class AppController extends Controller
    {
        public $helpers = array('Form', 'Html', 'Session');
        public $components = array('Session', 'Auth');
     
        function beforeFilter()
        {
            $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'admin' => false);
            $this->Auth->authorize = array('Controller');
     
            if(!isset($this->params['prefix']))
            {
                $this->Auth->allow();
            }
        }
    }
    default.ctp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div id="contenu">
                    <a href="<?php echo $this->Html->url(array('controller' => 'pages', 'action' => 'index', 'admin' => true)); ?>">Administration</a>
                    <a href="<?php echo $this->Html->url(array('controller' => 'users', 'action' => 'logout', 'admin' => false)); ?>">Se déconnecter</a>
                    <?php echo $content_for_layout; ?>
    </div>
    Si une âme charitable pouvait bien me dire pourquoi cela ne veut pas fonctionner, je lui en serai reconnaissant.

    Merci d'avance !
    "Non, je ne dois rien à personne
    Et je ne méprise personne".


    Je ne réponds pas aux message techniques par MP !

  2. #2
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Dans le redirect pourquoi ne pas simplement faire le redirect vers ton index.

    Sinon essaye de fermer la session après delog. J'ai eu un problème comme sa il y a quelque temps et cela venait de la session qui ne voulait pas comprendre le changement de statut ^^
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  3. #3
    Membre éprouvé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 353
    Points : 1 264
    Points
    1 264
    Par défaut
    J'a rajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $this->Session->delete();
    ?>
    mais cela ne semble pas fonctionner.

    Merci pour ton aide
    "Non, je ne dois rien à personne
    Et je ne méprise personne".


    Je ne réponds pas aux message techniques par MP !

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Tu a essaye de lui indiquer un redirect vers une page en particulier dans ta function logout?
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  5. #5
    Membre éprouvé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 353
    Points : 1 264
    Points
    1 264
    Par défaut
    Idem, dès que je ne suis plus en admin, je suis systématiquement redirigé vers le formulaire de connexion.

    Je commence à désespérer....
    "Non, je ne dois rien à personne
    Et je ne méprise personne".


    Je ne réponds pas aux message techniques par MP !

  6. #6
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    et tu a tué ta session? sa c'est pas logique.

    Quand tu va sur le site sans te logger Cela te fait la même chose? Ou les autres personnes peuvent elles naviguer normalement?
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  7. #7
    Membre éprouvé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 353
    Points : 1 264
    Points
    1 264
    Par défaut
    Justement, je ne peux naviguer que si je suis connecté.
    Sinon, je suis toujours redirigé vers la page de connexion.

    Ma fonction logout ressemble à ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
        function logout()
        {
            $this->Auth->logout();
            $this->Session->delete();
            $this->redirect('/');
        }
    ?>
    "Non, je ne dois rien à personne
    Et je ne méprise personne".


    Je ne réponds pas aux message techniques par MP !

  8. #8
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    pourrais tu me montrer ton code du cotroler également?
    Il doit bien y avoir une raison lol.
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  9. #9
    Membre éprouvé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 353
    Points : 1 264
    Points
    1 264
    Par défaut
    Je te mets tous mes controllers.

    UserController
    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
     
    <?php
    class UsersController extends AppController
    {
        //Fonction qui permet de se loguer
        function login()
        {
            if($this->request->is('post'))
            {
                if($this->Auth->login())
                    return $this->redirect('/admin');
            }
        }
     
        //Fonction qui permet de déloguer
        function logout()
        {
            $this->Auth->logout();
            $this->Session->delete();
            $this->redirect('/');
        }
    }
    AppController
    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
     
    <?php
    class AppController extends Controller
    {
        public $helpers = array('Form', 'Html', 'Session');
        public $components = array('Session', 'Auth');
     
        function beforeFilter()
        {
            $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'admin' => false);
            $this->Auth->authorize = array('Controller');
     
            if(!isset($this->params['prefix']))
            {
                $this->Auth->allow();
            }
        }
    }
    PagesController
    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
     
    <?php
    class PagesController extends AppController
    {    
        //Fonction qui permet de changer de layout si le paramètre admin est dans l'url
        function beforeFilter()
        {
            if(isset($this->params['prefix']) && $this->params['prefix'] == 'admin')
            {
                $this->layout = 'admin';
            }
        }
     
        /**
         * ------------------------ Fonctions d'utilisateur ------------------------
         **/
     
        //Permet d'afficher la page d'accueil
        function index(){}
     
        //Permet d'afficher les pages sous la forme /pages/show/xxxxx
        function voir($slug = null)
        {
            $page = $this->Page->find('first', array(
                'conditions' => array(
                    'slug' => $slug,
                    'online' => 1
            )));
     
            //Petit test qui permet de savoir si une page existe ou pas. Si c'est pas le cas, on lève une exception
            if(empty($page))
                throw new NotFoundException('La page que vous essayez d\'atteindre n\'est pas disponible');
     
            $d['page'] = $page;
            $this->set($d);
        }
     
        /**
         * ------------------------ Fonctions d'administration ------------------------
         **/
     
        //VA chercher toutes les pages contenues dans la BDD afin de pouvoir les afficher
        function admin_index()
        {
            $page = $this->Page->find('all');
            $d['page'] = $page;
     
            $this->set($d);
        }
     
        //Pour éditer une page
        function admin_edit($id)
        {
            if($this->request->is('put') || $this->request->is('post'))
            {
                if($this->Page->save($this->request->data))
                {
                    $this->redirect(array('controller' => 'pages', 'action' => 'index'));
                }
            }
            elseif($id)
            {
                $this->Page->id = $id;
                $this->request->data = $this->Page->read();
            }
        }
     
        //Pour supprimer une page
        function admin_delete($id)
        {
            $this->Session->setFlash('La page a bien été supprimée', 'message_succes');
            $this->Page->delete($id);
            $this->redirect($this->referer());
        }
    }
    "Non, je ne dois rien à personne
    Et je ne méprise personne".


    Je ne réponds pas aux message techniques par MP !

Discussions similaires

  1. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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