23-08-2009, 10:59 AM
Je te conseille de lire les articles qui parlent de la technique en POO (comment faire un constructeur, comment faire de l'héritage, etc.) il faut arrêter de chercher des tutoriaux pour tout et réfléchir par soi-même (quitte à demander des choses sur un forum comme celui-ci).
En fait, une classe Inscription n'a pas vraiment de sens. L'inscription, c'est juste la création d'un nouvel utilisateur. Alors la classe qui est concernée, c'est la classe User.
Un exemple de ce à quoi pourrait ressembler ton formulaire (page register.php) :
Un exemple de ce à quoi pourrait ressembler ta page de traitement (user_create.php):
Un exemple de ce à quoi ta classe pourrait ressembler :
Voilà une manière de faire. Documente-toi jusqu'à comprendre ce bout de code, poses des questions (après avoir cherché), etc.
Sephi-Chan
En fait, une classe Inscription n'a pas vraiment de sens. L'inscription, c'est juste la création d'un nouvel utilisateur. Alors la classe qui est concernée, c'est la classe User.
Un exemple de ce à quoi pourrait ressembler ton formulaire (page register.php) :
<form action="user_create.php" method="post">
<div class="field">
<div><label for="user_login">Nom d'utilisateur</label></div>
<div><input id="user_login" type="text" name="user[login]"></input></div>
</div>
<div class="field">
<div><label for="user_password">Nom d'utilisateur</label></div>
<div><input id="user_password" type="password" name="user[password]"></input></div>
</div>
<div class="submit">
<input type="submit">
</div>
</form>
Un exemple de ce à quoi pourrait ressembler ta page de traitement (user_create.php):
if(isset($_POST['user'])){
$user = new User();
$user->setLogin($_POST['user']['login']);
$user->setPassword($_POST['user']['password']);
$user->save();
}
Un exemple de ce à quoi ta classe pourrait ressembler :
class User {
protected $_id;
protected $_login;
protected $_password;
/**
* Récupère un utilisateur à partir de son ID.
* Crée un nouvel objet sinon.
*/
public function __construct($id = null){
if($id && is_numeric($id)){
/**
* Récupère un utilisateur en base de données.
*/
}
return $this;
}
/**
* Retourne un tableau des utilisateurs qui ont le login demandé.
* Retourne un tableau vide si aucun utilisateur ne correspond.
*/
public static function find_by_login($login){
$users = array();
/**
* Requête SQL qui cherche les utilisateurs qui ont ce login.
* On boucle sur les résultats (s'il y en a) en faisant à chaque itération :
*
* $user = new User();
* $user->setId($row->id)
* ->setPassword($row->password)
* ->setLogin($row->login);
*
*/
return $users;
}
public function save(){
if($this->is_valid()){
/**
* Si l'utilisateur n'a pas d'ID, c'est que c'est un nouvel utilisateur.
* Donc on le crée en base de données (INSERT).
*/
if($this->getId() == null){
/**
* Si ça fonctionne, on renvoie l'utilisateur crée.
* Sinon, on renvoie false.
*/
}
else {
/**
* S'il a un ID, la ligne pour cet utilisateur existe déjà donc
* on fait juste un update.
* Si ça fonctionne, on renvoie l'utilisateur crée.
* Sinon, on renvoie false.
*/
}
return $this;
}
else {
return false;
}
}
/**
* Valide les données.
*/
protected function is_valid(){
/**
* Ici, on peut par exemple vérifier si l'utilisateur n'utilise pas un login
* déjà pris. Que le mot de passe fait plus de 3 caractères, etc.
*/
}
public function setId($id){
$this->_id = $id;
return $this;
}
public function getId(){
return $this->_id;
}
public function setLogin($login){
$this->_login = $login;
return $this;
}
public function getLogin(){
return $this->_login;
}
public function setPassword($password){
$this->_password = $password;
return $this;
}
public function getPassword(){
return $this->_password;
}
}
Voilà une manière de faire. Documente-toi jusqu'à comprendre ce bout de code, poses des questions (après avoir cherché), etc.
Sephi-Chan