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

Langage PHP Discussion :

Redirection [PHP 7]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 24
    Par défaut Redirection
    J'ai des pages qu'il faut protéger et permettre uniquement les utilisateurs connectés à y accèder. J'ai créé une fonction redirect qui a pour role de rediriger à une url spécifique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public function redirect($url, $code = null)
        {
            if($code == 301){
                header("HTTP/1.1 301 Moved Permanently");
            }
            header('Location: '.Router::url($url));
            die();
        }
    Et une fonction isLogged qui permettra de vérifier si une session active est existante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function isLogged()
        {
            return isset($_SESSION['User'][0]->id);
        }
    Dans ma page à sécurisé, j'ai fais un test pour vérifier si l'utilisateur est connecté, si ce n'est pas le cas, je dois le rediriger vers la page d'authentification:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(!$this->Session->isLogged()){
        $this->redirect('users/login');
    }
    Sauf que là j'ai la fameuse erreur ERR_TOO_MANY_REDIRECTS sur ma route users/login.
    J'ai testé la meme chose pour la protection de mon espace admin et ça a marché sans problème. Le problème est survenu uniquement dans la protection des pages frontoffice de mon site.

    Avez-vous une idée, d'où viens le problème ?

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Too many redirects, c'est une boucle de redirection. Soit une page 1 qui redirige vers une page 2 qui redirige elle-même vers la page 1, soit carrément une page qui redirige vers elle-même.
    En l'occurrence, je dirais que ta page de login fait aussi une vérification de connexion. A vérifier.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 24
    Par défaut
    En fait si, le problème c'est que la page login redirige vers elle-meme.
    Du coup, j'ai fais une condition qui permet de vérifier et ignorer si on est sur la meme page ou pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(!$this->Session->isLogged() && $this->request->controller != 'users'){
        $this->redirect('users/login');
    }
    Du coup maintenant je n'ai plus cette erreur de redirection.

    Merci

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

Discussions similaires

  1. [Strategie]Redirection après un formulaire
    Par kyser91 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 19/03/2004, 15h15
  2. redirection de trames
    Par Fry dans le forum Développement
    Réponses: 2
    Dernier message: 06/01/2004, 13h31
  3. [VB.NET]Double redirection.
    Par CammCamm dans le forum ASP.NET
    Réponses: 9
    Dernier message: 24/11/2003, 15h11
  4. [VB6] probleme de redirection d'une commande DOS
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 09h36
  5. [reseaux] redirection de flux
    Par Olive1808 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 12/08/2002, 09h24

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