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 :

[Tableaux] PB fonction boolean qui teste le userlevel admin,guest


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut PB fonction boolean qui teste le userlevel admin,guest
    salut,

    j ai crée une fonction qui teste le userlevel pour savoir si le user est admin ,ou guest...

    le resultat de ma fonction est toujours false alors que je suis en admin


    voici la fonction:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
     
    function is_coord()
    {
     
    	if($session->userlevel == 9)
    	{
    	return true;
    	}
    	else
    	{
     
    			if($session->userlevel == 3)
    			{
    			return true;
    			}
    			else
    			{
    				if($session->userlevel == 1)
    				{
    				return false;
    				}
     
     
    			}
     
     
     
    	}
    }

    et j ai un formulaire ou jappelle ma fonction et j affiche le resultat de la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    if (is_coord()!=true)
    	{
    	echo" is_coord()=false";
    	echo"<br>";	
    	}
    	else
    	{
    	echo" is_coord()=true";
    	echo"<br>";
    	}

    donc le soucis c'est je suis en loguer en admin donc il devrait me retourner true
    a l affichage j ai ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     is_coord()=false
    je ne comprends pas pourquoi j ai pas la bonne valeur

    merci

  2. #2
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    $session->userlevel
    ça vient d'où ça ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Points : 112
    Points
    112
    Par défaut
    essayez un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($session->userlevel);
    au début de votre fonction pour voir ce que vaut la variable

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    ca vient de ma classe session

    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
     
     
    class Session
    {
       var $username;     //Username given on sign-up
       var $userid;       //Random value generated on current login
       var $userlevel;    //The level to which the user pertains
       var $time;         //Time user was last active (page loaded)
       var $logged_in;    //True if user is logged in, false otherwise
       var $userinfo = array();  //The array holding all user info
       var $url;          //The page url current being viewed
       var $referrer;     //Last recorded site page viewed
     
     
    }

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    donc j ai fait un var dump et voici le resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    NULL is_coord()=false
    donc il ne verrait pas le userlevel ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Points : 112
    Points
    112
    Par défaut
    voila, votre variable $session->userlevel (valeur NULL ) n'est pas définie au sein de votre fonction,

    essayez ceci :
    en tête de votre fonction

    Tester la valeur des variables est la première etape lors d'un debuggage, loin devant un post sur un forum


    Fred

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    merci pour ton aide

    le resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    string(1) "9" is_coord()=true
    je ne comprends toujours pas , la on a bien le userlevel pour admin qui est 9

    pourquoi global $session?

    mais si $session est global je ne devrai pas le mettre non?

  8. #8
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    mais si $session est global je ne devrai pas le mettre non?
    Et ou as tu définis qu'elle était global ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par megapacman
    merci pour ton aide

    le resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    string(1) "9" is_coord()=true
    je ne comprends toujours pas , la on a bien le userlevel pour admin qui est 9

    pourquoi global $session?

    mais si $session est global je ne devrai pas le mettre non?
    Lorsque votre fonction s'execute elle n'a aucune connaissance des variables définies dans le script, si vous voulez que votre fonction puisse "lire" des variables "exterieures" il faut les déclarer grace à global
    cela permet à la fonction d'avoir accès à la variable bien qu'elle n'est pas dans son contexte

    Voir pour plus d'infos :
    Portée des variables

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    en fait , je ne crois pas que j ai specifié qu elle etait global quelque part

    donc en rajoutant global $session c'est qu elle est accessible partout alors? non?

    merci pour votre aide

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Points : 112
    Points
    112
    Par défaut
    Un doute m'assaille, avez vous penser penser à enlever la ligne var_dump(...) ??

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    oui merci , j ai bien enlever le var dump, et d ailleurs je voir le tuto portée globale

    merci pour votre aide et pour les infos

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

Discussions similaires

  1. Fonction qui teste la longueur du plus long mot d'une chaine
    Par identifiant_bidon dans le forum Langage
    Réponses: 3
    Dernier message: 30/10/2008, 12h03
  2. Réponses: 1
    Dernier message: 21/07/2008, 16h35
  3. Réponses: 4
    Dernier message: 18/09/2007, 11h46
  4. Réponses: 1
    Dernier message: 16/06/2007, 22h44
  5. Réponses: 5
    Dernier message: 13/06/2007, 16h05

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