Salut ! J'ai un soucis dans mon contrôleur au moment de l'inscription je veux faire plusieurs test afin de valider ou refuser une inscription Le premier problème est que quand une inscription est refusé il envoie quand même un email a l'utilisateur comme quoi il à bien était inscrit et de plus le test suivant
if ( $liste['email'] == $_POST['email']) {
$form['valide'] = false;
$form['message'] ="Cette email est déjà utilisé";
}
ne s'effectue pas je ne comprend pas pourquoi ?
Merci de votre aide
Mon controleur :
function actionInscription($twig, $db) {
$form = array();
if (isset($_POST['btInscrire'])) {
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$telephone = $_POST['telephone'];
$pass = $_POST['pass'];
$pass2 = $_POST['pass2'];
$form['valide'] = true;
$idrole = 1;
$utilisateur = new Utilisateur($db);
$liste = $utilisateur->select();
//-----Captchat------//
$secret = "6Let9KcUAAAAACxPpScT6BNbm6nGJ1v_5f59Ui5q";
$response = $_POST['g-recaptcha-response'];
$remoteip = $_SERVER['REMOTE_ADDR'];
$api_url = "https://www.google.com/recaptcha/api/siteverify?secret="
. $secret
. "&response=" . $response
. "&remoteip=" . $remoteip;
$decode = json_decode(file_get_contents($api_url), true);
//-----FinCaptchat------//
var_dump($liste);
/*/Captchat condition//
if ($decode['success'] == true) {
$form['valide'] = true;
$form['message'] = "Vous n'avez pas valider le captchat";
}*/
if ( $liste['email'] == $_POST['email']) {
$form['valide'] = false;
$form['message'] ="Cette email est déjà utilisé";
}
//FINCondition//
elseif ($pass != $pass2) {
$form['valide'] = false;
$form['message'] = 'Les mots de passe sont différents';
}
elseif (strlen($pass) < 8) {
$form['valide'] = false;
$form['message'] = 'Votre mot de passe est trop court il doit contenir au moins 8 caractères';
}
else {
//Envoie d'un mail de confirmation//
$header = "MIME-Version: 1.0\r\n";
$header .= 'From:"CocooningDog.fr"<[email protected]>' . "\n";
$header .= 'Content-Type:text/html; charset="uft-8"' . "\n";
$header .= 'Content-Transfer-Encoding: 8bit';
$message = "
<html>
<body>
<div align='center'>
Bienvenue $nom .<br/>
<img width='800px' height='400px' src='cocooningdog.fr/images/chiens3.jpg' />
Veuillez vous rendre sur le site pour prendre rendez-vous </a> </p>
</div>
</body>
</html>
";
mail($email, "Cocooning !", $message, $header);
//fin d'envoie du mail//
$utilisateur = new Utilisateur($db);
$exec = $utilisateur->insert($nom, $prenom, $email,$telephone, password_hash($pass, PASSWORD_DEFAULT), $idrole);
if (!$exec) {
$form['valide'] = false;
$form['message'] = 'Veuillez vérifier les informations saisie ';
}
}
$form['email'] = $email;
}
echo $twig->render('inscription.html.twig', array('form' => $form, 'session' => $_SESSION));
}
Mon modele :
class Utilisateur {
private $db;
private $insert;
private $connect;
private $update;
private $select;
private $selectByEmail;
private $updateMdp;
public function __construct($db) {
$this->db = $db;
$this->connect = $db->prepare("select * from utilisateurs where email=:email ");
$this->insert = $db->prepare("insert into utilisateurs( nom , prenom , email, telephone, pass , idrole) values( :nom, :prenom ,:email, :telephone, :pass ,:idrole)");
$this->update = $db->prepare("update utilisateurs set nom=:nom, prenom=:prenom, email=:email, telephone=:telephone, pass=:pass where email=:email");
$this->select = $db->prepare("select * from utilisateurs");
$this->selectByEmail = $db->prepare("select email from utilisateurs where email=:email");
$this->updateMdp = $db->prepare("update utilisateurs set pass=:pass where email=:email");
}
public function connect($email) {
$unUtilisateur = $this->connect->execute(array(':email' => $email ));
if ($this->connect->errorCode() != 0) {
print_r($this->connect->errorInfo());
}
return $this->connect->fetch();
}
public function insert( $nom, $prenom, $email, $telephone, $pass, $idrole) {
$r = true;
$this->insert->execute(array(':nom' => $nom, ':prenom' => $prenom , ':email'=>$email ,':telephone' => $telephone, ':pass' => $pass , ':idrole'=>$idrole));
if ($this->insert->errorCode() != 0) {
print_r($this->insert->errorInfo());
$r = false;
}
return $r;
}
public function update($nom, $prenom, $email,$telephone, $pass) {
$r = true;
$this->update->execute(array(':nom' => $nom, ':prenom' => $prenom, ':email' => $email, ':telephone' => $telephone ,':pass' => $pass));
if ($this->update->errorCode() != 0) {
print_r($this->update->errorInfo());
$r = false;
}
return $r;
}
public function selectByEmail($email) {
$this->selectByEmail->execute(array(':email' => $email));
if ($this->selectByEmail->errorCode() != 0) {
print_r($this->selectByEmail->errorInfo());
}
return $this->selectByEmail->fetch();
}
public function select() {
$liste = $this->select->execute();
if ($this->select->errorCode() != 0) {
print_r($this->select->errorInfo());
}
return $this->select->fetchAll();
}
public function updateMdp($pass, $email) {
$r = true;
$this->updateMdp->execute(array(':pass' => $pass, ':email' => $email));
if ($this->updateMdp->errorCode() != 0) {
print_r($this->updateMdp->errorInfo());
$r = false;
}
return $r;
}
}
Ma vue :
<form method="post" action="" class="register-form-style">
{% if form.valide is defined %}
{% if form.valide == true %}
{% else %}
<h3 >Echec de connexion</h1><br>
<h3 > {{form.message}}</h1><br><br>
{% endif %}
{% else %}
{% endif %}
<input type="text" name="nom" placeholder="Nom"/>
<input type="text" name="prenom" placeholder="Prenom"/>
<input type="email" name="email" placeholder="Adresse Email"/>
<input type="tel" id="phone" name="telephone"
pattern="^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$"
placeholder="Numéro de téléphone" />
<input type="password" name="pass" placeholder="Mot de passe"/>
<input type="password" name="pass2" placeholder="Confirmer le mot de passe"/>
<div class="g-recaptcha" style="transform:scale(0.90);-webkit-transform:scale(0.90);transform-origin:0 0;-webkit-transform-origin:0 0;" data-sitekey="6Let9KcUAAAAADuEe7wWXGxotn8ECWPJ_nVq1oQO"> </div>
<p class="message">"En cliquant sur le bouton inscription vous acceptez nos conditions d'utilisations."</p><br />
<button name="btInscrire">Inscription</button>
<p class="message">"Vous avez déjà un compte ?<a href="index?page=connexion"> Connexion</a></p>
</form>
Merci de votre aide

Salut ! J'ai un soucis dans mon contrôleur au moment de l'inscription je veux faire plusieurs test afin de valider ou refuser une inscription Le premier problème est que quand une inscription est refusé il envoie quand même un email a l'utilisateur comme quoi il à bien était inscrit et de plus le test suivant
if ( $liste['email'] == $_POST['email']) {
$form['valide'] = false;
$form['message'] ="Cette email est déjà utilisé";
}
ne s'effectue pas je ne comprend pas pourquoi ?
Merci de votre aide
Mon controleur :
[PHP]
function actionInscription($twig, $db) {
$form = array();
if (isset($_POST['btInscrire'])) {
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$telephone = $_POST['telephone'];
$pass = $_POST['pass'];
$pass2 = $_POST['pass2'];
$form['valide'] = true;
$idrole = 1;
$utilisateur = new Utilisateur($db);
$liste = $utilisateur->select();
//-----Captchat------//
$secret = "6Let9KcUAAAAACxPpScT6BNbm6nGJ1v_5f59Ui5q";
$response = $_POST['g-recaptcha-response'];
$remoteip = $_SERVER['REMOTE_ADDR'];
$api_url = "https://www.google.com/recaptcha/api/siteverify?secret="
. $secret
. "&response=" . $response
. "&remoteip=" . $remoteip;
$decode = json_decode(file_get_contents($api_url), true);
//-----FinCaptchat------//
var_dump($liste);
/*/Captchat condition//
if ($decode['success'] == true) {
$form['valide'] = true;
$form['message'] = "Vous n'avez pas valider le captchat";
}*/
if ( $liste['email'] == $_POST['email']) {
$form['valide'] = false;
$form['message'] ="Cette email est déjà utilisé";
}
//FINCondition//
elseif ($pass != $pass2) {
$form['valide'] = false;
$form['message'] = 'Les mots de passe sont différents';
}
elseif (strlen($pass) < 8) {
$form['valide'] = false;
$form['message'] = 'Votre mot de passe est trop court il doit contenir au moins 8 caractères';
}
else {
//Envoie d'un mail de confirmation//
$header = "MIME-Version: 1.0\r\n";
$header .= 'From:"CocooningDog.fr"<
[email protected]>' . "\n";
$header .= 'Content-Type:text/html; charset="uft-8"' . "\n";
$header .= 'Content-Transfer-Encoding: 8bit';
$message = "
<html>
<body>
<div align='center'>
Bienvenue $nom .<br/>
<img width='800px' height='400px' src='cocooningdog.fr/images/chiens3.jpg' />
Veuillez vous rendre sur le site pour prendre rendez-vous </a> </p>
</div>
</body>
</html>
";
mail($email, "Cocooning !", $message, $header);
//fin d'envoie du mail//
$utilisateur = new Utilisateur($db);
$exec = $utilisateur->insert($nom, $prenom, $email,$telephone, password_hash($pass, PASSWORD_DEFAULT), $idrole);
if (!$exec) {
$form['valide'] = false;
$form['message'] = 'Veuillez vérifier les informations saisie ';
}
}
$form['email'] = $email;
}
echo $twig->render('inscription.html.twig', array('form' => $form, 'session' => $_SESSION));
}
[/PHP]
Mon modele :
[PHP]
class Utilisateur {
private $db;
private $insert;
private $connect;
private $update;
private $select;
private $selectByEmail;
private $updateMdp;
public function __construct($db) {
$this->db = $db;
$this->connect = $db->prepare("select * from utilisateurs where email=:email ");
$this->insert = $db->prepare("insert into utilisateurs( nom , prenom , email, telephone, pass , idrole) values( :nom, :prenom ,:email, :telephone, :pass ,:idrole)");
$this->update = $db->prepare("update utilisateurs set nom=:nom, prenom=:prenom, email=:email, telephone=:telephone, pass=:pass where email=:email");
$this->select = $db->prepare("select * from utilisateurs");
$this->selectByEmail = $db->prepare("select email from utilisateurs where email=:email");
$this->updateMdp = $db->prepare("update utilisateurs set pass=:pass where email=:email");
}
public function connect($email) {
$unUtilisateur = $this->connect->execute(array(':email' => $email ));
if ($this->connect->errorCode() != 0) {
print_r($this->connect->errorInfo());
}
return $this->connect->fetch();
}
public function insert( $nom, $prenom, $email, $telephone, $pass, $idrole) {
$r = true;
$this->insert->execute(array(':nom' => $nom, ':prenom' => $prenom , ':email'=>$email ,':telephone' => $telephone, ':pass' => $pass , ':idrole'=>$idrole));
if ($this->insert->errorCode() != 0) {
print_r($this->insert->errorInfo());
$r = false;
}
return $r;
}
public function update($nom, $prenom, $email,$telephone, $pass) {
$r = true;
$this->update->execute(array(':nom' => $nom, ':prenom' => $prenom, ':email' => $email, ':telephone' => $telephone ,':pass' => $pass));
if ($this->update->errorCode() != 0) {
print_r($this->update->errorInfo());
$r = false;
}
return $r;
}
public function selectByEmail($email) {
$this->selectByEmail->execute(array(':email' => $email));
if ($this->selectByEmail->errorCode() != 0) {
print_r($this->selectByEmail->errorInfo());
}
return $this->selectByEmail->fetch();
}
public function select() {
$liste = $this->select->execute();
if ($this->select->errorCode() != 0) {
print_r($this->select->errorInfo());
}
return $this->select->fetchAll();
}
public function updateMdp($pass, $email) {
$r = true;
$this->updateMdp->execute(array(':pass' => $pass, ':email' => $email));
if ($this->updateMdp->errorCode() != 0) {
print_r($this->updateMdp->errorInfo());
$r = false;
}
return $r;
}
}
[/PHP]
Ma vue :
[html]
<form method="post" action="" class="register-form-style">
{% if form.valide is defined %}
{% if form.valide == true %}
{% else %}
<h3 >Echec de connexion</h1><br>
<h3 > {{form.message}}</h1><br><br>
{% endif %}
{% else %}
{% endif %}
<input type="text" name="nom" placeholder="Nom"/>
<input type="text" name="prenom" placeholder="Prenom"/>
<input type="email" name="email" placeholder="Adresse Email"/>
<input type="tel" id="phone" name="telephone"
pattern="^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$"
placeholder="Numéro de téléphone" />
<input type="password" name="pass" placeholder="Mot de passe"/>
<input type="password" name="pass2" placeholder="Confirmer le mot de passe"/>
<div class="g-recaptcha" style="transform:scale(0.90);-webkit-transform:scale(0.90);transform-origin:0 0;-webkit-transform-origin:0 0;" data-sitekey="6Let9KcUAAAAADuEe7wWXGxotn8ECWPJ_nVq1oQO"> </div>
<p class="message">"En cliquant sur le bouton inscription vous acceptez nos conditions d'utilisations."</p><br />
<button name="btInscrire">Inscription</button>
<p class="message">"Vous avez déjà un compte ?<a href="index?page=connexion"> Connexion</a></p>
</form>
[/html]
Merci de votre aide :)