Moemir |
Le 19/12/2007 à 11:52  |
|
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($requete, Data::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éré';
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 |