Bonjour, voici mon code :
class/clientManager.php
class clientManager {
private $_db;
public function __construct(PDO $db) {
$this->setDb($db);
}
public function setDb($dbh) {
$this->_db = $dbh;
}
// Fonction qui a pour rôle de récupérer les emails de la base pour vérifier si un mail existe ou pas lors de l'inscription.
public function getMail($email) {
$sql = 'SELECT COUNT(id), email FROM client WHERE email = :email';
$stmnt = $this->_db->prepare($sql);
$stmnt->execute(array(':email' => $email));
if($stmnt->fetchColumn() > 0) {
return false;
}
else {
return true;
}
}
// Fonction qui a pour rôle d'insérer le client dans la table client si mail n'existe pas.
public function addClient(Client $client) {
$sql = 'INSERT INTO client (name, email) VALUES(:name, :email)';
$name = htmlspecialchars($client->getName());
$email = htmlspecialchars($client->getEmail());
$stmnt = $this->_db->prepare($sql);
$stmnt->bindParam(':name', $name);
$stmnt->bindParam(':email', $email);
if($stmnt->execute()) {
return true;
}
else {
return false;
}
}
// Fonction qui a pour rôle de vérifier si le client existe ou pas lors de l'authentification (page login.php).
public function getClient($name, $email) {
$sql = 'SELECT COUNT(id), name, email FROM client WHERE name = :name AND email = :email';
$stmnt = $this->_db->prepare($sql);
$stmnt->execute(array(
':name' => $name,
':email' => $email
));
if($stmnt->fetchColumn() > 0) {
return true;
}
else {
return false;
}
}
public function getUserName($name) {
$sql = 'SELECT name FROM client WHERE name = :name';
$stmnt = $this->_db->prepare($sql);
$stmnt->execute(array(':name' => $name));
$row = $stmnt->fetch();
return $row;
}
public function updateMail(Client $client) {
$sql = 'UPDATE client SET email = :email WHERE email = :email';
$email = htmlspecialchars($client->getEmail());
$stmnt = $this->_db->prepare($sql);
$stmnt->bindParam(':email', $email);
if($stmnt->execute()) {
return true;
}
else {
return false;
}
}
class/Client.php
class Client {
protected $id;
protected $name;
protected $email;
protected static $error;
const MSG_ERROR_ID = 'ID doit être un entier.';
const MSG_ERROR_NAME = 'NOM doit être une chaîne de caractères.';
const MSG_ERROR_EMAIL = 'EMAIL doit être une chaîne de caractères.';
const MSG_ERROR_OBJET = 'L\'objet ne peut pas être crée.';
public function __construct(array $data) {
$this->setId($data['id']);
$this->setName($data['name']);
$this->setEmail($data['email']);
if(!empty(self::$error)) {
throw new Exception(self::$error . self::MSG_ERROR_OBJET);
}
}
public function setError($msg) {
self::$error = $msg;
}
public function getError() {
return self::$error;
}
public function setId($id) {
if((is_int($id)) AND ($id > 0)) {
$this->id = $id;
}
else {
$this->setError(self::MSG_ERROR_ID);
}
}
public function setName($name) {
if(is_string($name)) {
$this->name = $name;
}
else {
$this->setError(self::MSG_ERROR_NAME);
}
}
public function setEmail($email) {
if(is_string($email)) {
$this->email = $email;
}
else {
$this->setError(self::MSG_ERROR_EMAIL);
}
}
public function getId() {
return $this->id;
}
public function getName() {
return $this->name;
}
public function getEmail() {
return $this->email;
}
}
includes/inc_connexion.php
try {
$db = new PDO('mysql:host=localhost;dbname=hotels', 'root', '10111110');
}
catch(PDOException $e) {
echo 'Erreur de connexion ' . $e->getMessage();
}
process/process_profil.php
require('../class/Client.php');
require('../includes/inc_connexion.php');
//require('../class/clientManager.php');
if(isset($_POST['submit_form'])) {
if(isset($_POST['usermail_form'])) {
$usermail_form = trim($_POST['usermail_form']);
$new_mail = array(
'id' => 1,
'name' => $username_form,
'email' => $usermail_form
);
$mail = new Client($new_mail);
$manager = new clientManager($db);
if(!$manager->getMail($usermail_form)) {
$message = '<p class="error">C\'est Email est déjà pris !</p>';
}
else {
$email = $manager->updateMail($mail);
var_dump($email);
}
}
}
J’ai aucun message d’erreur, malgré ça l’email n’a pas été modifié.
Merci d’avance.
+0
-1