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

PHP & Base de données Discussion :

Affichage conditionelle en php


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut Affichage conditionelle en php
    Bonjour,

    j'aimerai utiliser une affichage conditionnelle de tel sorte que quand l'utilisateur est connecté à partir de sa session je vérifie ses privilèges dans la base des données, s'il est administrateur que le menu des administrateurs puisse apparaître là il y a une full option mais s'il est utilisateur simple que le menu avec des options réduites puisse apparaît.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
     
    if ($_SESSION['privilege']=="administrateur");
    {
    include "menu_pge2.php";
    }
    elseif ($_SESSION['privilege']== "Utilisateur");
    { 
    include "menu_page.php";
    }
    ?>
     
    ?>

  2. #2
    Membre très actif
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 174
    Par défaut
    Bonjour,

    Et la question est ???

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    L'erreur suivante apparaît :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error in C:\wamp\www\internetService\accueil.php on line 45
    C'est la ligne 8 de mon code posté qui représente la ligne 45 ici.

  4. #4
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Citation Envoyé par glodybiss4 Voir le message
    L'erreur suivante apparaît :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error in C:\wamp\www\internetService\accueil.php on line 45
    C'est la ligne 8 de mon code posté qui représente la ligne 45 ici.
    Enleve les ";" après les parenthèses de tes conditions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
     
    if ($_SESSION['privilege'] == "administrateur") {
      include "menu_pge2.php";
    } else if ($_SESSION['privilege'] == "Utilisateur") { 
      include "menu_page.php";
    }
     
    ?>

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Merci beaucoup ça fonctionne

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Je m'excuse mais je reviens encore auprès de vous pour une aide, au fait j'ai maintenant utiliser les sessions alors j'ai fais en sorte que quand l'utilisateur n'est pas connecté comme étant administrateur que le menu_page puisse apparaître mais s'il est connecté comme étant administrateur que le menu_page2 puisse apparaître dans le menu_page2 il y a une full option, alors je remarque que après avoir mis mon code aucun menu de deux apparaît quand j'essaie de me connecté comme utilisateur simple ou même administrateur.

    Pour afficher verifier les privilèges et afficher l'un de menu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    if (isset($_SESSION['authentification']) && isset($_SESSION['privilege']) && $_SESSION['privilege'] == "administrateur") {
      include "menu_page2.php";// vérification sur la session authentification, si elle est enregistré
    // Je véifie également si la session ouverte est bien une session administrateur et je place les options pour administrateur
    }else if ($_SESSION['privilege']== "Utilisateur") {
        include "menu_page.php";
    }
    ?>
    Mon fichier de connexion à l'index

    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
     $base = mysql_connect (DB_HOST, USER_NAME, PASSE_WORD); 
           mysql_select_db (DATA_BASE, $base); 
      $sql = "select count(*) as nb from agent where nom='".$nom."' and  password='".md5($password)."'";
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
      $data = mysql_fetch_assoc($req); 
     
            if ($data['nb'] == 1) { 
              session_register("authentification"); 
            $_SESSION ['privilege']= $_row_verif['privilege'];//verification de ses privilèges 
    		$_SESSION ['nom']= $_row_verif['nom'];//la session avec son nom
    		$_SESSION ['prenom']= $_row_verif['prenom'];//la session avec son prénom
    		$_SESSION ['password']= $_row_verif['password'];//la session avec son password
     
                header('Location: '.PAGE_PRIVATE4.''); 
                exit(); 
            }  
         elseif ($data['nb'] == 0) { 
           $erreur = 'Compte non existant.'; 
           }
    merci à vous.

  7. #7
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Salut,

    Tu à pensé au session_start() ?
    Si oui, Ajoute ca pour vérifier la valeur de ta variable de session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (isset($_SESSION['authentification']) && isset($_SESSION['privilege']) && $_SESSION['privilege'] == "administrateur") {
      include "menu_page2.php";// vérification sur la session authentification, si elle est enregistré
    // Je véifie également si la session ouverte est bien une session administrateur et je place les options pour administrateur
    }else if ($_SESSION['privilege']== "Utilisateur") {
        include "menu_page.php";
    } else {
        var_dump($_SESSION['privilege']);
    }
    Dis nous ce que ca t'affiche

    EDIT : Ta requete ne récupère qu'un Count, si tu veux récupérer les autres champs que tu essaye de mettre en session, essaye comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "select count(*) as nb, privilege, nom, prenom, password from agent where nom='".$nom."' and  password='".md5($password)."'";

  8. #8
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Avant c'était vide il n'y avait rien qui s'affichait, après avoir remplacer vos sources ça donne NULL comme message pour tous les deux comptes:


  9. #9
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Citation Envoyé par glodybiss4 Voir le message
    Avant c'était vide il n'y avait rien qui s'affichait, après avoir remplacer vos sources ça donne NULL comme message pour tous les deux comptes:

    La variable $row_verif n'existe pas, essaye de la remplacer par ton $data :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $_SESSION ['privilege'] = $data['privilege'];//verification de ses privilèges 
    $_SESSION ['nom']       = $data['nom'];//la session avec son nom
    $_SESSION ['prenom']   = $data['prenom'];//la session avec son prénom
    $_SESSION ['password']= $data['password'];

  10. #10
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Cette fois-ci j'ai ceci pour l'utilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string(11) "Utilisateur"
    Et ceci pour l'administrateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string(13) "Admnistrateur"

  11. #11
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    OK donc maintenant c'est tout bon ?

  12. #12
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Oui, mais à la place de ce qu'il m'affiche, il devait affiché les différentes menu que j'ai mis dans include

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (isset($_SESSION['authentification']) && isset($_SESSION['privilege']) && $_SESSION['privilege'] == "administrateur") {
      include "menu_page2.php";// vérification sur la session authentification, si elle est enregistré
    // Je véifie également si la session ouverte est bien une session administrateur et je place les options pour administrateur
    }else if ($_SESSION['privilege']== "Utilisateur") {
        include "menu_page.php";
    } else {
        var_dump($_SESSION['privilege']);
    }

  13. #13
    Membre très actif
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Par défaut C'est la boucle qui te tue
    MAIS Si t'es dans le else c'est que la boucle n'est pas satisfaite, je veux dire sir ca t'affiche "utilisateur" ou "Administrateur " c'est que t'as pas defini le

    $_SESSION['authentification'] OU le $_SESSION['privilege']

    Pour cela, tu peux modifier le codes dans la base de données (ce qui est du travail) ou bien, la solution simple et de modifier ta boucle en ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_SESSION['privilege']) && $_SESSION['privilege'] == "administrateur") {
      include "menu_page2.php";// vérification sur la session authentification, si elle est enregistré
    // Je véifie également si la session ouverte est bien une session administrateur et je place les options pour administrateur
    }else if ($_SESSION['privilege']== "Utilisateur") {
        include "menu_page.php";
    }
    Conclus!

  14. #14
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Pour l'administrateur c'est peut être a cause de la majuscule, essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (isset($_SESSION['privilege']) && $_SESSION['privilege'] == "Administrateur") {
    Par contre pour l'utilisateur la j'avoue que je comprend pas ou est le problème

  15. #15
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Citation Envoyé par tresorunikin Voir le message
    MAIS Si t'es dans le else c'est que la boucle n'est pas satisfaite, je veux dire sir ca t'affiche "utilisateur" ou "Administrateur " c'est que t'as pas defini le

    $_SESSION['authentification'] OU le $_SESSION['privilege']

    Pour cela, tu peux modifier le codes dans la base de données (ce qui est du travail) ou bien, la solution simple et de modifier ta boucle en ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_SESSION['privilege']) && $_SESSION['privilege'] == "administrateur") {
      include "menu_page2.php";// vérification sur la session authentification, si elle est enregistré
    // Je véifie également si la session ouverte est bien une session administrateur et je place les options pour administrateur
    }else if ($_SESSION['privilege']== "Utilisateur") {
        include "menu_page.php";
    }
    Conclus!

    Pour le authentification ca peut en effet expliquer pourquoi il ne passe pas dans le 1er if, mais pour le 2eme (utilisateur), si la variable $_SESSION['privilege'] n'était pas défini, le var_dump n'afficherait rien

  16. #16
    Membre très actif
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Par défaut
    Oui la casse aussi! 'a' et non 'A'! Glody, je te conseil le copier coller

  17. #17
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Par défaut
    Merci amoiraud, merci mon petit tresorunikin et merci à developpez.com

    C'est résolu.

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

Discussions similaires

  1. [Upload] AFFICHAGE ERREUR upload.php
    Par cherifa dans le forum Langage
    Réponses: 1
    Dernier message: 17/09/2006, 15h29
  2. Affichage conditionelle !
    Par sam.fet dans le forum ASP
    Réponses: 10
    Dernier message: 02/08/2006, 13h48
  3. Affichage conditionelle !
    Par roudoudouduo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 23/06/2006, 09h14
  4. Probleme d'affichage avec script php
    Par Misoss dans le forum Langage
    Réponses: 2
    Dernier message: 22/06/2006, 19h50
  5. fonction d'affichage de code php en couleur
    Par winnie82 dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2006, 11h14

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