Bonjour,
je m'amuse à faire un système de commentaire mais j'ai un bug lors de la validation du formulaire :
j'ai 3 champs à vérifier (psuedo, mail, commentaire), les vérifications marchent sauf pour la vérification du mail.
Elle fonctionne si tout les champs ne sont pas remplis. Mais si tout les champs sont remplis et malgré que le mail ne soit pas correct alors il envoie quand même les données dans la base.
Pourquoi si tout les champs sont remplis la vérification de celui-ci s'annule ?
<?php
require('connect.php');
if(!empty($_POST) && !empty($_POST'pseudo']) && !empty($_POST'commentaire']) && !empty($_POST'email']))
{
extract($_POST);
$pseudo = strip_tags($pseudo);
$commentaire = strip_tags($commentaire);
$email = strip_tags($email);
$req = $bdd->prepare('INSERT INTO commentaires (pseudo, commentaire, email) VALUES (:pseudo, :commentaire, :email)');
$req->execute(array(':pseudo'=>$pseudo, ':commentaire'=>$commentaire, ':email'=>$email));
$last_com_id = $bdd->lastInsertId('commentaires');
$req->closeCursor();
$req = $bdd->prepare('SELECT * FROM commentaires WHERE id=:last_com_id');
$req->execute(array(':last_com_id'=>$last_com_id));
$d = $req->fetch(PDO::FETCH_OBJ);
$data = array('pseudo'=>$d->pseudo, 'commentaire'=>$d->commentaire, 'email'=>$d->email, 'date'=>$d->date);
echo json_encode($data);
}
else
{
extract($_POST);
$erreurs = array($erreurpseudo = (empty($pseudo)) ? 'Indiquez un pseudo' : null,
$erreuremail1 = (filter_var ($email, FILTER_VALIDATE_EMAIL) === false) ? 'Votre mail est invalide' : null,
$erreuremail2 = (empty($email)) ? 'Veuillez renseigner votre mail' : null,
$erreurcommentaire = (empty($commentaire)) ? 'Indiquez un commentaire' : null);
if($erreurs != null)
{
foreach($erreurs as $erreurs)
{
if($erreurs != null)
{
echo $erreurs.'<br />';
}
}
}
}
?>