Orienté objet
Hors ligneMoemir Le 19/12/2007 à 11:52 Profil de Moemir Configuration de Moemir

Bonjour à tous :)

Comme par hasard, ce qui m'amene ici est un problème ;-)

Lorsque j'instancie un objet d'une classe, php ne met rien dedans, ce qui est assez génant en Orienté Objet....

Voici mon code:



<span style="color: #0000BB"><?php
class DBUtilisateur
{
     public static function connexionUtilisateur($login$mdp)
     {
          $requete="select * from utilisateur where login = '$login' and mdp = '$mdp';";
          $donnees mysql_query($requeteData::getConnexion())or die (MyController::afficherPageErreur(mysql_error()));
     
          if
($donnees)
          {
               if(mysql_num_rows($donnees) == 1)
               {
                    $row mysql_fetch_assoc($donnees);
                    $id $row["uid"];
                    $log $row["login"];
                    $pass$row["mdp"];
                    $loca $row["localisation"];
                    $util = new Utilisateur($id,$log,$pass,$loca);
                    $_SESSION["uid"] = $id;
                    return $util;
               }
               else
               {
                    return null;
               }
          }
          else
          
{
               echo 'rien de récup&eacute;r&eacute;';
               return null;
          }
     }

}
?>
</span></span>


et la classe utilisateur:



<span style="color: #0000BB"><span style="color: #0000BB"><?php

class Utilisateur
{
     private  $uid$login$mdp$localisation;

     public function _construct($uid$login$mdp$localisation)
     {
          $this->uid$uid;
          $this->login $login;
          $this->mdp $mdp;
          $this->localisation $localisation;
     }
     
     
public function getuid()
     {
          return $this->uid;
     }
     
     
public function getLogin()
     {
          return $this->login;
     }

     
     
public function getMotDePasse()
     {
          return $this->mdp;
     }
     
     
public function getLocalisation()
     {
          return $this->localisation;
     }
     
     
public function toString()
     {
          $phrase "Login : ".$this->login." et mdp ".$this->mdp." localisation: ".$this->localistation;
          return $phrase;
     }
}
?>
</span></span>



Le tout est appelé par un  controller orienté données ( j'essaye de suivre le design pattern MVC): Voici la fonction appelante en question:


<span style="color: #000000">
public static function connexionUtilisateur()
{
     if(isset($_POST['login']))
     {
          $login     = strval($_POST['login']);
     }
     if(isset($_POST['mdp']))
     {
          $mdp      = strval($_POST['mdp']);
     }

     $util = DBUtilisateur::connexionUtilisateur($login, $mdp);
          
     if(!$utill)
     {
          MyController::afficherPageErreur("Mauvais login et ou mot de passe");          
     }
     else
     {
          MyController::afficherAccueil();
     }
}



J'ai bien testé la requete sql, elle renvoie bien les données. C'est vraiment au niveau de l'instanciation de l'objet $util que j'ai du rater quelque chose (c'est d'ailleur surement tres con comme erreur ^^)

Je suis obligé de "tricher", quand je fais des $util->getXXXX(), la variable obtenue est égale à null :/


Merci d'avance
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels