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 :

Problème session


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut Problème session
    Hi all !

    Alors sur un site que je développe en ce moment, g un pti problème de session.

    Mon but est d'afficher un menu qu'on est connecté en tant qu'administrateur, et donc de ne pas l'afficher qu'on ne l'est pas.

    Pour répertorié les admin, g une table user dans ma BDD avec un champ "statut" et donc la valeur "admin" pour un administrateur.

    A l'ouverture de la page d'acceuil ou de n'importe laquel d'ailleurs g ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?
    session_start();
    require("connect_db.php");
    if(isset($_SESSION['statut'])){
       $statut=$_SESSION['statut'];
    }
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    et avant chaque partie de menu à afficher ou pas j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
    				if($statut == "admin"){		
    					echo"<li><a href='modif_serv.php?statut=admin'>Modification serveur</a></li>";}
    				?>
    et j'obtien ceci quand aucun admin n'est connecté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined variable: statut in c:\program files\easyphp1-8\www\test\top.php on line 41
    et pareil quand je suis connecté en tant qu'admin et il n'affiche pas le menu désiré.

    j'ai toujours la possibilité de faire une requête SQL pour la stocké dans statut mais je voudrai garder statut pour différencié un visiteurs d'un admin.

    Je galère vraiment là donc si vous pouvez m'aider, ca serait très gentil !!

    Merci pour vos réponses
    " Can't take your slogans no more, no more sweet talk from the hypocrits " by Robert Nesta Marley

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Salut,

    Il nous faudrait quelques infos supplémentaires notamment comment est alimenté $_SESSION['statut]

    Quand à l'erreur, c'est normal qu'elle apparaisse pusique si on n'est pas admin alors la variable n'est pas initialisée

    Sinon quelques pistes, tu peux essayer de voir ce que contient $_SESSION['statut'] avant de l'attribuer à $statut

    Pierre
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  3. #3
    Membre averti Avatar de johweb
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Points : 367
    Points
    367
    Par défaut
    Je confirme les dires de FCYPBA : remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_SESSION['statut'])){ 
       $statut=$_SESSION['statut']; 
    }
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_SESSION['statut'])){ 
       $statut=$_SESSION['statut']; 
    }else{
       $statut='';
    }

  4. #4
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    Bah je ne sais pas vraiment comment alimenté $_SESSION['statut'] quand aucun utilisateur n'est connecté d'ou le isset et apparemment il prend pas non plus le statut lorsque je me connecte ...

    g testé en mettant le $_session['statut'] en echo, et g l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Notice: Undefined index: statut in c:\program files\easyphp1-8\www\test\top.php on line 83
    " Can't take your slogans no more, no more sweet talk from the hypocrits " by Robert Nesta Marley

  5. #5
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    le code proposé par johweb est exacetement ce qu'il te faut.

    Si la variable de session n'est pas défini, il faut quand meme attribué une valeur à $statut sinon tu va avoir des Notice partout
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  6. #6
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    merci johweb , g remplacé, j'ai plus le message d'erreur, seulement, kan je me connecte, je n'ai pas la partie de menu d'admin ke je voudrai avoir, voila ce ke j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?
    	if($statut == "admin"){		
    		echo"<li><a href='modif_serv.php?statut=admin'>Modification serveur</a></li>";}
    				?>
    " Can't take your slogans no more, no more sweet talk from the hypocrits " by Robert Nesta Marley

  7. #7
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Comment sais tu que la personne est admin.

    En gros comment alimentes-tu la variable de session lorsqu'une personne se connecte ??

    Pierre
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  8. #8
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    Non c bon !! ca marche !!

    Merci bcp a tt les deux !!!

    Bonne continuation à vous et merci encore
    " Can't take your slogans no more, no more sweet talk from the hypocrits " by Robert Nesta Marley

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

Discussions similaires

  1. [c#] Problème sessions et commandes SQL
    Par skystef dans le forum ASP.NET
    Réponses: 10
    Dernier message: 18/12/2006, 18h08
  2. Problème sessions avec IE
    Par Original Prankster dans le forum Langage
    Réponses: 4
    Dernier message: 13/11/2006, 20h44
  3. Problème session start()
    Par zana74 dans le forum Langage
    Réponses: 16
    Dernier message: 20/08/2006, 14h05
  4. problème session actualisation !
    Par lafracas dans le forum Langage
    Réponses: 1
    Dernier message: 11/06/2006, 15h04
  5. Problème session
    Par pete007 dans le forum ASP
    Réponses: 8
    Dernier message: 11/03/2004, 16h55

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