Bonjour,

Etant grand débutant en PHP, je me suis fixé l'exercice de créer un espace membre de connexion sur une future appli. Je souhaite faire cela sur l'architecture CRUD

Pour l'instant je n'ai fait que écrire ma requête d'ajout d'un membre qui ne fonctionne pas avec 2 classes : l'une qui représente les membres qui s'inscrivent et l'autre qui les gère (manager).J'ai par ailleurs crée une table en local dont
chaque entrée comporte : ID (autoincrémenté), pseudo, mot de passe et date d'inscription du membre.

Code : 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
 
<?php
class Inscription_Membre//Rôle représente les inscriptions des membres
{
	private $_pseudo;
	private $_password;
 
	public function hydrate(array $data) {//hydratation de l'objet "$membre"
		foreach ($data as $key => $value) {
			$method = 'set'.ucFirst($key);
			if(method_exists($this, $method)) {
				$this->method($value);
			}
		}
	}
 
	//Setters
	public function setPseudo($pseudo) {
		$this->_pseudo = $pseudo;
	}
 
	public function setPass($pass) {
		$this->_password = $pass;
	}
 
	//Getters
	public function getPseudo() {
		return $this->_pseudo;
	}
 
	public function getPass() {
		return $this->_password;
	}
}
 
class Manager_Membre{//Gère les membres
 
	private $_db; // Instance de PDO
 
 	public function __construct($db) {
    	$this->setDb($db);
  }
 
	public function addMember($membre){
 
		$req = $this->_db->prepare('INSERT INTO membre(pseudo, pass, inscript_date) VALUES(:pseudo, :pass, now())');
		$req->bindValue(':pseudo', $membre->getPseudo());
		$req->bindValue(':pass', $membre->getPass());
 
		$req->execute();
	}
 
	public function setDb(PDO $db) {
    	$this->_db = $db;
	}
}
 
$membre = new Inscription_Membre([
  'pseudo' => 'Victor',//$_POST['pseudo']
  'pass' => 'truc'//$_POST['pass']
]);
 
 
$db = new PDO('mysql:host=localhost;dbname=exo_crud;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION ));//Objet de l'instance PDO
 
$manager = new Manager_Membre($db);
$manager->addMember($membre);
Le code est sale car j'ai lié les fichiers de classe pour faire un seul tronçon de code

J'ai une erreur sur la ligne sur la ligne 50 avec probablement un problème de date. D'autre part il est possible qu'il y ait d'autres erreurs, ceci est ma première tentative. Si quelqu'un pouvait me donner un coup de pouce pour me débloquer
ça serait très sympathique

Bien à la communauté

Olivier