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 :

un objet vide en programmation orientée objet


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de gautier1er
    Homme Profil pro
    Developpeur C et PHP
    Inscrit en
    Août 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Developpeur C et PHP

    Informations forums :
    Inscription : Août 2017
    Messages : 61
    Par défaut un objet vide en programmation orientée objet
    Code php : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     <?php
    class Membre
      {
    	  //attributs
    	  private $_pseudo; 
           private $_password;                   
             private $_mail; 
     
    	  //constructeur
    	 public function  __construct( array $donnees)
         {
           $this->hydrateMembre($donnees);
         }
     
     
    	 //getters (accesseurs) 
    	 public function   getPseudo()
         {
     
          return  $this->_pseudo;
         }
     
    public  function  getPassword()
    {
     
    return  $this->_password;
    }
     
    	public  function  getMail()
        {
     
          return  $this->_mail;
        }
     
     
    //setters
    public function setPseudo($login)
    {
      $this->_pseudo=$login;
    }
     
      public  function  setPassword($mdp)
     {
     
           $this->_password=$mdp;
     
     }
     
    public function setMail($Adressemail)
    {
     
      //on verifie si c'est vrai une adresse mail 
      if($this->isMail($Adressemail))
      {
       $this->_mail=$Adressemail; 
      }
    }
     
    public function isMail($mail)
    {
     
     return preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$mail);
    }
     
     
      }
     
      ?>



    Code php : 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
    32
    33
    34
     <?php
    class MembreManager
     {
     
          //attribut
        private $_db;
     
        //constructeur
        public function  __construct($db)
        {
         $this->setDb($db);
        }
     
      public function getSectionFromDB(Membre $user)
      {
       $req=$this->_db->prepare('SELECT idSection FROM membre WHERE   PseudoMembre=?');
       $req->execute(array($user->getPseudo() ) );
       $donnee=$req->fetch(PDO::FETCH_ASSOC);
       return $donnee['idSection'] ;
      }
     
     
       public function getMembre($id)
       {
     
       $req=$this->_db->prepare('SELECT * FROM membre WHERE idSection=?');
       $req->execute(array($id ) );
       $donnee=$req->fetch(PDO::FETCH_ASSOC);
       return new Membre($donnee);
       } 
     
     }
     
      ?>

    le but est de mettre les données de l'utilisateur dans les variables de session
    un utilisateur se connecte à partir de son pseudo et son mot de passe.
    J'aimerai stocker le pseudo, l'email, la section et la date d'inscription de l'utilisateur dans les sessions

    Donc j'ai crée mes deux objets pour la vérification des données envoyé par le formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	 $manager=new MembreManager($db);
     
    	$user=new Membre(array('pseudo'=>$login,'password'=>$pass) );
    //on fait les vérifications ici

    Toutes les données de l'utilisateur sont correctes donc je crée un objet qui récupère les données de l'utilisateur dans la base de données


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	//on récupère les données de l'utilisateur
              $utilisateur=$manager->getMembre($id);
    Mais quand j'utilise l'objet $utilisateur
    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $utilisateur->getPseudo() ;
    $utilisateur->getMail();
    l'objet est vide.

    J'ai besoin de votre aide.


    cordialement.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ou est la methode hydrateMembre ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de gautier1er
    Homme Profil pro
    Developpeur C et PHP
    Inscrit en
    Août 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Developpeur C et PHP

    Informations forums :
    Inscription : Août 2017
    Messages : 61
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      public function hydrateMembre(array $donnees )
     {
            foreach($donnees as $cle=> $valeur)
            {
              $methode='set'.ucfirst($cle);
              if(method_exists($this, $methode))
              {
               $this->$methode($valeur);
              }
            }
     
      }

    J'ai aussi ajouté des attributs et méthodes à ma classe Membre ci dessus

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi cette méthode n'est pas dans les codes que tu nous as donné ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé Avatar de gautier1er
    Homme Profil pro
    Developpeur C et PHP
    Inscrit en
    Août 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Developpeur C et PHP

    Informations forums :
    Inscription : Août 2017
    Messages : 61
    Par défaut
    J 'ai enlevé des méthodes et attributs pour aller au but du sujet. Excusez moi si vous aviez trouvé cela impeu bizarre.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    As-tu debugué un peu ?
    Par exemple est-ce que la requête dans getMembre() donne un résultat ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Problème de programmation orientée objet
    Par dan65 dans le forum WinDev
    Réponses: 8
    Dernier message: 17/09/2006, 01h04
  2. Réponses: 2
    Dernier message: 30/03/2006, 14h48
  3. [C#] Comment correctement programmer orienté objet ?
    Par ChristopheOce dans le forum C#
    Réponses: 5
    Dernier message: 06/02/2006, 13h22
  4. [POO] apprendre la programmation orientée objet
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 10/12/2005, 11h33
  5. [DEBUTANT] Conseil sur la programmation orienté objet
    Par etiennegaloup dans le forum Langage
    Réponses: 7
    Dernier message: 27/05/2005, 12h59

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