Vérification des champs et message
Résolu/Fermé
animostab
animostab
- Messages postés
- 2829
- Date d'inscription
- jeudi 10 mars 2005
- Statut
- Membre
- Dernière intervention
- 11 novembre 2019
animostab
- Messages postés
- 2829
- Date d'inscription
- jeudi 10 mars 2005
- Statut
- Membre
- Dernière intervention
- 11 novembre 2019
A voir également:
- Vérification des champs et message
- Vérification des champs et message ✓ - Forum - PHP
- Problème de vérification caractère champs téléphone (formulaire) ✓ - Forum - Javascript
- Vérification des champs vides ✓ - Forum - Webmaster
- Vérif un champs de formulaire en javascript ✓ - Forum - Javascript
- Javascript - Vérification de champ ✓ - Forum - Javascript
4 réponses
Pitet
14 avril 2014 à 16:30
- Messages postés
- 2826
- Date d'inscription
- lundi 11 février 2013
- Statut
- Membre
- Dernière intervention
- 21 juillet 2022
14 avril 2014 à 16:30
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
joebuz
14 avril 2014 à 09:28
- Messages postés
- 37
- Date d'inscription
- dimanche 11 novembre 2012
- Statut
- Membre
- Dernière intervention
- 14 avril 2014
14 avril 2014 à 09:28
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>';
}
animostab
Modifié par animostab le 14/04/2014 à 13:57
- Messages postés
- 2829
- Date d'inscription
- jeudi 10 mars 2005
- Statut
- Membre
- Dernière intervention
- 11 novembre 2019
Modifié par animostab le 14/04/2014 à 13:57
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.
benj21000
14 avril 2014 à 15:36
- Messages postés
- 8
- Date d'inscription
- lundi 14 avril 2014
- Statut
- Membre
- Dernière intervention
- 14 avril 2014
14 avril 2014 à 15:36
Bonjour à la place de !empty essaye isset($post...)
animostab
Modifié par animostab le 14/04/2014 à 16:07
- Messages postés
- 2829
- Date d'inscription
- jeudi 10 mars 2005
- Statut
- Membre
- Dernière intervention
- 11 novembre 2019
Modifié par animostab le 14/04/2014 à 16:07
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
benj21000
14 avril 2014 à 16:11
- Messages postés
- 8
- Date d'inscription
- lundi 14 avril 2014
- Statut
- Membre
- Dernière intervention
- 14 avril 2014
14 avril 2014 à 16:11
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
animostab
Modifié par animostab le 15/04/2014 à 00:52
- Messages postés
- 2829
- Date d'inscription
- jeudi 10 mars 2005
- Statut
- Membre
- Dernière intervention
- 11 novembre 2019
Modifié par animostab le 15/04/2014 à 00:52
exact c'était dans la meme page donc au chargement les champs sont vides d'ou le message de champs vides (je suis bete de ne pas y avoir pensé plus tot). c'est pour ca que j'ai fait le traitement du formulaire dans une autre page
15 avril 2014 à 01:01
je test quand je rentre chez moi (dans 2 jours) mais ca m'a l'air d'une logique implacable
Merci Pitet