probleme dans mon code

Par liam, il y a 11 ans


bonsoir , les erreurs ne s'affiche pas et par défaut sa affiche tout les champs sont oblligatoire ou est l'erreur dans mon code svp merci d'avance

<?php require_once 'cnx.php'; if(isset($_POST['envoyer'])) { if (isset($_POST['pseudo']) AND !empty ($_POST['pseudo']) AND isset($_POST['email']) AND !empty ($_POST['email']) AND isset($_POST['pass']) AND !empty ($_POST['pass']) AND isset($_POST['pass2']) AND !empty ($_POST['pass2'])) { $id = ''; $nom = $_POST['nom']; $prenom = $_POST['prenom']; $email = $_POST['email']; $pass = sha1($_POST['pass']); $pseudo = $_POST['pseudo']; $e = $bdd->prepare('SELECT pseudo FROM membre WHERE pseudo ="'.pseudo.'"'); $e->execute(array($_POST['pseudo'])); $rep = $e->fetch(); if (isset($_POST['pseudo'])) { $longueur_pseudo = strlen($pseudo); if ($longueur_pseudo <= 30) { if($i = $bdd->prepare(" INSERT INTO membre (id,nom,prenom,email,pass,pseudo) VALUES (:id,:nom,:prenom,:email,:pass,:pseudo)") ) $i->bindParam(':id', $id); $i->bindParam(':nom', $nom); $i->bindParam(':prenom', $prenom); $i->bindParam(':email', $email); $i->bindParam(':pass', $pass); $i->bindParam(':pseudo', $pseudo); $i->execute(); $succes ='le compte est crée . connectez vous <a href="connexion.php">ici</a>'; }else{ $erreur ='Le pseudo est trop long (max : 30)'; } }else{ $erreur ='Le pseudo existe déja'; } }else{ $erreur = 'Tout les champs sont obligatoires.'; } } ?>

3 réponses

Carouge10, il y a 11 ans

Bonsoir à vous aussi.,

Le mieux est de tester chaque champs indépendamment.

$erreur = ""; if (empty($_POST['pseudo'])) $erreur .= "Le pseudo est vide<br>"; if (empty($_POST['email'])) $erreur .= "Veuillez saisir un email<br>"; ...
liam, il y a 11 ans

merci bien

Alexandre #lbac, il y a 11 ans

Déjà pour commencer supprimes

isset($_POST['pseudo']) AND !empty ($_POST['pseudo']) AND isset($_POST['email']) AND !empty ($_POST['email']) AND isset($_POST['pass']) AND !empty ($_POST['pass']) AND isset($_POST['pass2']) AND !empty ($_POST['pass2'])

et remplaces le par

isset($_POST)

Pour tester tu peux faire un var_dump($_POST) pour tester ce qu'il retourne