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 :

[Système] redirection qui ne marche pas


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 29
    Points
    29
    Par défaut [Système] redirection qui ne marche pas
    bonsoir,

    j'ai un système de protection des pages par authentification (membres) mais j'aimerais que selon le privilège du membre, il soit redirigé sur un page différente une fois loggué.

    le problème avec le code suivant, c'est que ca ne marche pas, il retourne toujours a clients.php quelques soit le privilège de l'utilisateur :

    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 
     
        // si l'utilisateur est connecté comme ...
      if($_SESSION['privilege'] == "admin") { 
      header("Location:../test_admin.php"); // redirection si OK
    	}
      if($_SESSION['privilege'] == "client") {
      header("Location:../test_clients.php"); // redirection si OK
    	}
      if($_SESSION['privilege'] == "partenaire") {   
      header("Location:../test_partenaire.php"); // redirection si OK
    	}
     
      else {
      header("Location:../clients.php"); // redirection si utilisateur non reconnu
    		 }
    	?>
    est ce que quelqu'un voit ou est ce que j'ai fais l'erreur ?

    merci bp d'avance

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    ton else fonctionne avec ton dernier if :
    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
      <?php 
      
        // si l'utilisateur est connecté comme ...
      if($_SESSION['privilege'] == "admin") { 
      header("Location:../test_admin.php"); // redirection si OK
    	}
      if($_SESSION['privilege'] == "client") {
      header("Location:../test_clients.php"); // redirection si OK
    	}
      if($_SESSION['privilege'] == "partenaire") {   
      header("Location:../test_partenaire.php"); // redirection si OK
    	}
    	
      else {
      header("Location:../clients.php"); // redirection si utilisateur non reconnu
    		 }	
    ?>
    donc , dans ce cas, si $_SESSION['privilege'] est different de "partenaire" , le script passe directement au else puisque c'est la dernière instruction

    Tu devrais utiliser plutot un switch() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      <?php 
      switch($_SESSION['privilege']){
    case  "admin" : header("Location:../test_admin.php"); break;
    case  "client" : header("Location:../test_clients.php"); break;
    case "partenaire" : header("Location:../test_partenaire.php"); break;
    default :  header("Location:../clients.php"); break;
    }	
    ?>
    si $_SESSION['privilege'] n'est ni admin, ni client, ni partenaire , le visiteur est redirigé vers clients.php

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Et je complète : une redirection devrait toujours être immédiatement suivie par un exit() ou un die(). Ainsi, tu n'aurais pas le genre de problème que tu évoques. Quand tu as demandé une redirection + exit(), tu n'as plus à te soucier de la situation qui a amené à la redirection.

Discussions similaires

  1. [Système] bbcode imbriqué qui ne marche pas
    Par jexl dans le forum Langage
    Réponses: 11
    Dernier message: 22/06/2007, 12h21
  2. [Système] Commande system qui ne marche pas
    Par marie59 dans le forum Langage
    Réponses: 7
    Dernier message: 16/05/2007, 17h40
  3. Redirection qui ne marche pas.
    Par Snivel dans le forum Struts 1
    Réponses: 5
    Dernier message: 05/10/2006, 18h24
  4. redirection sur une action qui ne marche pas
    Par nesbla dans le forum Struts 1
    Réponses: 5
    Dernier message: 04/08/2006, 20h16
  5. redirection qui ne marche pas...
    Par sam01 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/04/2006, 10h16

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