Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2011, 10h29   #1
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
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 :
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";
}
?>
 
?>
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 11h15   #2
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Bonjour,

Et la question est ???
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 11h34   #3
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
L'erreur suivante apparaît :

Code :
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.
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 11h39   #4
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 412
Détails du profil
Informations personnelles :
Nom : Homme Adrien
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 : 412
Points : 537
Points : 537
Envoyer un message via MSN à amoiraud
Citation:
Envoyé par glodybiss4 Voir le message
L'erreur suivante apparaît :

Code :
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 :
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";
}
 
?>
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 13h07   #5
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Merci beaucoup ça fonctionne
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 13h18   #6
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
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 :
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 :
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.
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 15h05   #7
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 412
Détails du profil
Informations personnelles :
Nom : Homme Adrien
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 : 412
Points : 537
Points : 537
Envoyer un message via MSN à amoiraud
Salut,

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

Code :
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 :
1
2
 
$sql = "select count(*) as nb, privilege, nom, prenom, password from agent where nom='".$nom."' and  password='".md5($password)."'";
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 15h58   #8
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
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:

glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 16h16   #9
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 412
Détails du profil
Informations personnelles :
Nom : Homme Adrien
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 : 412
Points : 537
Points : 537
Envoyer un message via MSN à amoiraud
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 :
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'];
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 16h36   #10
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Cette fois-ci j'ai ceci pour l'utilisateur :

Code :
string(11) "Utilisateur"
Et ceci pour l'administrateur :

Code :
string(13) "Admnistrateur"
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h21   #11
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 412
Détails du profil
Informations personnelles :
Nom : Homme Adrien
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 : 412
Points : 537
Points : 537
Envoyer un message via MSN à amoiraud
OK donc maintenant c'est tout bon ?
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h41   #12
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Oui, mais à la place de ce qu'il m'affiche, il devait affiché les différentes menu que j'ai mis dans include

Code :
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']);
}
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h44   #13
Membre habitué
 
Homme
Inscription : septembre 2008
Messages : 161
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations forums :
Inscription : septembre 2008
Messages : 161
Points : 139
Points : 139
Envoyer un message via Skype™ à tresorunikin
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 :
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!
tresorunikin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h47   #14
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 412
Détails du profil
Informations personnelles :
Nom : Homme Adrien
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 : 412
Points : 537
Points : 537
Envoyer un message via MSN à amoiraud
Pour l'administrateur c'est peut être a cause de la majuscule, essaye ca :

Code :
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
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h49   #15
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 412
Détails du profil
Informations personnelles :
Nom : Homme Adrien
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 : 412
Points : 537
Points : 537
Envoyer un message via MSN à amoiraud
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 :
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
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h59   #16
Membre habitué
 
Homme
Inscription : septembre 2008
Messages : 161
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations forums :
Inscription : septembre 2008
Messages : 161
Points : 139
Points : 139
Envoyer un message via Skype™ à tresorunikin
Oui la casse aussi! 'a' et non 'A'! Glody, je te conseil le copier coller
tresorunikin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 08h34   #17
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Merci amoiraud, merci mon petit tresorunikin et merci à developpez.com

C'est résolu.
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h46.


 
 
 
 
Partenaires

Hébergement Web