Bonjour tout le monde,

après maintes et maintes fois ou je regarde le tuto sur gérer des permissions, je me lance.

Tout ce passe bien, jusqu'a la fonction allow. Ma fonction user, me renvoi une erreur : <u>Notice: Undefined property: stdClass::$member in</u> , donc ma fonction user, me renvoi toujours false, et je suis toujours rediriger vers forbiden.

Voici mon code :

function allow($rang){

      global $db;
      $req = $db->prepare('SELECT slug, level FROM roles');
      $req->execute();
      $data = $req->fetchAll();
      $roles = array();
      foreach($data as $v){
        $roles$v->slug] = $v->level;
      }
      print_r($roles);
      if(!$this->infoUsers($rang)){
        //$this->forbiden();
      }
      else{
        if($roles$rang] > $this->infoUsers('level')){
          $this->forbiden();
        }
      }
    }
    /**
     * Recupere les information sur le rang du membre
     * @param String $field
     * @return Boolean/$field
     */
    function infoUsers($field){

      if(isset($_SESSION'auth']->$field)){
        echo'sa marche';
        //return $_SESSION'auth']->$field;
      }
      else{
        //return false;
      }

    }

Je sais pas d'ou peux provenir l'erreur.

Merci d'avance.

Cordialement Elo.

3 réponses


Lucaslachose2
Réponse acceptée

Salut.
Remplace ta condition :

if(!$this->infoUsers($rang)){
    $this->forbiden();
}

par :

if(!$this->infoUsers('level')){
    $this->forbiden();
}

et enlève tout tes echo et print_r.
Après il te reste plus qu'à remettre return false et return $_SESSION'auth']->$field dans ta fonction infoUsers() et normalement tout devrait marcher...

c'est a quelle ligne ? et $rang se base sur quoi ? c'est a dire quand tu appelles allow, tu lui passe quelle variable en parametre ?

eloyas
Auteur

C'est sa Lucaslachose2, je l'ai trouver ce matin, mais je ne pouvais pas éditer mon post car pas chez moi le reste de la journée ^^ .

Merci quand même a vous.

Cordialement Elo.