Vérification des champs et message
Résolu
animostab
Messages postés
2829
Date d'inscription
Statut
Membre
Dernière intervention
-
animostab Messages postés 2829 Date d'inscription Statut Membre Dernière intervention -
animostab Messages postés 2829 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un formulaire qui envoie dans une base mysql
le problème est que en ajoutant la vérification des champs pour savoir si il sont vides et ne pas envoyer cela m'affiche le message d'erreur au chargement de la page
voici le code
au chargement de la page ca affiche sans meme avoir envoyer le formulaire mon message d'erreur
"Votre commentaire n'a pas été posté
Vous devez remplir tous les champs du formulaire"
Merci de vos réponses car je tourne en rond avec ca et je suis pas super bon en php
pourtant j'ai vidé le cache et effacé les cookies mais ce truc persiste
J'ai un formulaire qui envoie dans une base mysql
le problème est que en ajoutant la vérification des champs pour savoir si il sont vides et ne pas envoyer cela m'affiche le message d'erreur au chargement de la page
voici le code
if ((!empty($_POST['pseudo'])) && (!empty($_POST['message'])))
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message);
$date = date('Y-m-d') ."\n";
mysql_query("INSERT INTO livre_or VALUES('', '" . $pseudo . "','" . $date . "', '" . $message . "')");
}
else { echo '<h1>Votre commentaire n\'a pas été posté</h1><p>Vous devez remplir tous les champs du formulaire</p>';}
au chargement de la page ca affiche sans meme avoir envoyer le formulaire mon message d'erreur
"Votre commentaire n'a pas été posté
Vous devez remplir tous les champs du formulaire"
Merci de vos réponses car je tourne en rond avec ca et je suis pas super bon en php
pourtant j'ai vidé le cache et effacé les cookies mais ce truc persiste
A voir également:
- Vérification des champs et message
- Recuperer message whatsapp supprimé - Guide
- Message supprimé whatsapp - Guide
- Message absence thunderbird - Guide
- Epingler un message whatsapp - Accueil - Messagerie instantanée
- Message du pere noel gratuit whatsapp - Accueil - Messagerie instantanée
4 réponses
Salut,
Tu dois ajouter une condition pour savoir si le formulaire a été envoyé ou non.
Tu peux facilement le faire en vérifiant la présence du paramètre de ton bouton submit :
Dans le formulaire :
Dans ton code php :
Bonne journée
Tu dois ajouter une condition pour savoir si le formulaire a été envoyé ou non.
Tu peux facilement le faire en vérifiant la présence du paramètre de ton bouton submit :
Dans le formulaire :
<form action="" method="post"> <input type="text" name="pseudo" /> <textarea name="message"></textarea> <input type="submit" name="envoi" value="Envoyer" /> </form>
Dans ton code php :
// si le paramètre $_POST['envoi'] existe, le formulaire a été soumis // sinon on ne fait rien : premier chargement de la page if (!empty($_POST['envoi'])) { if (!empty($_POST['pseudo']) && !empty($_POST['message'])) { } else { echo '<h1>Votre commentaire n\'a pas été posté</h1><p>Vous devez remplir tous les champs du formulaire</p>'; } }
Bonne journée
Bonjour,
Essaye ça :
if ((empty($_POST['pseudo'])) && (empty($_POST['message'])))
{
$pseudo = htmlspecialchars($_POST['pseudo']);
$message = htmlspecialchars(nl2br($_POST['message']));
$date = date('Y-m-d') ."\n";
$link = mysql_connect("localhost", "mysql_user", "mysql_password") or die ("Impossible de se connecter : " . mysql_error());
$sql = "INSERT INTO livre_or VALUES('', '$pseudo','$date', '$message')";
$req = mysql_query($sql, $link) or die( "ERREUR MYSQL: ".mysql_error()."<br>".$req."<br>\n" )
}
else {
echo '<h1>Votre commentaire n\'a pas été posté</h1><p>Vous devez remplir tous les champs du formulaire</p>';
}
Essaye ça :
if ((empty($_POST['pseudo'])) && (empty($_POST['message'])))
{
$pseudo = htmlspecialchars($_POST['pseudo']);
$message = htmlspecialchars(nl2br($_POST['message']));
$date = date('Y-m-d') ."\n";
$link = mysql_connect("localhost", "mysql_user", "mysql_password") or die ("Impossible de se connecter : " . mysql_error());
$sql = "INSERT INTO livre_or VALUES('', '$pseudo','$date', '$message')";
$req = mysql_query($sql, $link) or die( "ERREUR MYSQL: ".mysql_error()."<br>".$req."<br>\n" )
}
else {
echo '<h1>Votre commentaire n\'a pas été posté</h1><p>Vous devez remplir tous les champs du formulaire</p>';
}
merci de ta réponse mais ca ne marche pas
virgule absente après
$req = mysql_query($sql, $link) or die( "ERREUR MYSQL: ".mysql_error()."<br>".$req."<br>\n" )
pas de base sélectionnée
après avoir corrigé de la manière suivante ca affiche toujours le echo dans else{ au chargement de la page donneravis.php
<form action="donneravis.php" method="post">
Prénom/Nom :
<input name="pseudo"><br>
Message :<br />
<textarea name="message" rows="8" cols="35"></textarea><br />
<input name="grand" id="pasla">
<input type="submit" value="Envoyer" class="bouton">
</form>
<?php
if ((empty($_POST['pseudo'])) && (empty($_POST['message'])) && (!empty($_POST['grand'])))
{
$pseudo = htmlspecialchars($_POST['pseudo']);
$message = htmlspecialchars(nl2br($_POST['message']));
$date = date('Y-m-d') ."\n";
$link = mysql_connect("127.0.0.1", "root", "password");
$ret = mysql_select_db ('clownphp', $link)
or die ("Impossible de se connecter : " . mysql_error());
$sql = "INSERT INTO livre_or VALUES('', '$pseudo','$date', '$message')";
$req = mysql_query($sql, $link) or die( "ERREUR MYSQL: ".mysql_error()."<br>".$req."<br>\n" );
}
else {
echo '<h1>Votre commentaire n\'a pas été posté</h1><p>Vous devez remplir tous les champs du formulaire</p>';
}
?>
pour info le input name="grand" est caché par css et si il est rempli (par un co...rd de robot) le message n'est pas envoyé.
bon j'ai contourné le problème en traitant le formulaire sur une autre page si c'est ok ca envoie vers l'affichage des posts sinon ca renvoi au formulaire mais je ne sais toujours pas pourquoi le message s'affiche au chargement de page
PS je tourne avec easyphp 5.3.2
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
virgule absente après
$req = mysql_query($sql, $link) or die( "ERREUR MYSQL: ".mysql_error()."<br>".$req."<br>\n" )
pas de base sélectionnée
après avoir corrigé de la manière suivante ca affiche toujours le echo dans else{ au chargement de la page donneravis.php
<form action="donneravis.php" method="post">
Prénom/Nom :
<input name="pseudo"><br>
Message :<br />
<textarea name="message" rows="8" cols="35"></textarea><br />
<input name="grand" id="pasla">
<input type="submit" value="Envoyer" class="bouton">
</form>
<?php
if ((empty($_POST['pseudo'])) && (empty($_POST['message'])) && (!empty($_POST['grand'])))
{
$pseudo = htmlspecialchars($_POST['pseudo']);
$message = htmlspecialchars(nl2br($_POST['message']));
$date = date('Y-m-d') ."\n";
$link = mysql_connect("127.0.0.1", "root", "password");
$ret = mysql_select_db ('clownphp', $link)
or die ("Impossible de se connecter : " . mysql_error());
$sql = "INSERT INTO livre_or VALUES('', '$pseudo','$date', '$message')";
$req = mysql_query($sql, $link) or die( "ERREUR MYSQL: ".mysql_error()."<br>".$req."<br>\n" );
}
else {
echo '<h1>Votre commentaire n\'a pas été posté</h1><p>Vous devez remplir tous les champs du formulaire</p>';
}
?>
pour info le input name="grand" est caché par css et si il est rempli (par un co...rd de robot) le message n'est pas envoyé.
bon j'ai contourné le problème en traitant le formulaire sur une autre page si c'est ok ca envoie vers l'affichage des posts sinon ca renvoi au formulaire mais je ne sais toujours pas pourquoi le message s'affiche au chargement de page
PS je tourne avec easyphp 5.3.2
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
Bonjour à la place de !empty essaye isset($post...)
il me semble que isset regarde si une variable est définie, pas si elle est vide ou remplie
donc il me semble que isset meme avec un champs vide validera et enverra le formulaire non ?
dites moi si je me trompe.
mais bon j'ai déjà contourner mon problème avec1 page de traitement intermédiaire et redirection header suivant le test avec empty et la ca fonctionne
donc il me semble que isset meme avec un champs vide validera et enverra le formulaire non ?
dites moi si je me trompe.
mais bon j'ai déjà contourner mon problème avec1 page de traitement intermédiaire et redirection header suivant le test avec empty et la ca fonctionne
si à la base le formulaire était sur la même page que la vérification effectivement, il faut faire une page temporaire, ou le faire en ajax. Isset va vérifier si ta variable est définie donc qu'elle existe et si elle est différente de null donc contenant au moins 1 caractère qui peux être un espace d'ailleur si aucune vérif n'a été faite
je test quand je rentre chez moi (dans 2 jours) mais ca m'a l'air d'une logique implacable
Merci Pitet