PHP : Obligation de remplir un champ & check
Fermé
Toiine974
Messages postés
22
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
20 février 2013
-
2 déc. 2010 à 10:36
Mopra-L Messages postés 146 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 23 mai 2012 - 2 déc. 2010 à 13:49
Mopra-L Messages postés 146 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 23 mai 2012 - 2 déc. 2010 à 13:49
8 réponses
salut, tu peux essayer ceci..
Si un des champs n'est pas rempli, la case sera en couleur avec un pop up.
Dans ton form tu mets ceci.
et sur chaque cellule du tableau à vérifier tu ajoutes
c'est magique!
ciao
function couleur(obj) { obj.style.backgroundColor = "#FFFFFF"; } function check() { var msg = ""; if (document.nomduformululaire.cellulenom.value == "") { msg += "Veuillez saisir votre nom\n"; document.nomduformulaire.cellulenom.style.backgroundColor = "#F3C200"; } if (msg == "") return(true); else { alert(msg); return(false); } }
Si un des champs n'est pas rempli, la case sera en couleur avec un pop up.
Dans ton form tu mets ceci.
onSubmit="return check();"
et sur chaque cellule du tableau à vérifier tu ajoutes
onKeyUp="javascript:couleur(this);"
c'est magique!
ciao
Toiine974
Messages postés
22
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
20 février 2013
4
2 déc. 2010 à 10:41
2 déc. 2010 à 10:41
Désolé, je ne parviens pas à éditer le message précédent, je reprend ici :
Bonjour,
J'ai déjà trouvé quelques réponses à mon problème, mais je n'arrive pas a les intégrer à ma page,
alors en gros, j'ai un formulaire, avec 12 champs, suite auquel j'envoie par mail le contenu des champs.
Or, je reçois des mails avec des champs vides,
J'aimerai donc forcer le remplissage des champs (exceptés "telephone", "comment" et "commentaire"), en affichant un message si ils ne sont pas remplis (annulant ainsi l'envoi du mail).
Par ailleurs j'aimerai aussi faire un check entre les champs "mail" et "cmail", si ils ne correspondent pas l'un avec l'autre ou s'ils ne contiennent pas une adresse mail valide, afficher un mesage et annuler l'envoi là aussi.
voici ce que j'ai déjà :
Cordialement.
Configuration: Windows 2003 / Firefox 3.6.12
Bonjour,
J'ai déjà trouvé quelques réponses à mon problème, mais je n'arrive pas a les intégrer à ma page,
alors en gros, j'ai un formulaire, avec 12 champs, suite auquel j'envoie par mail le contenu des champs.
Or, je reçois des mails avec des champs vides,
J'aimerai donc forcer le remplissage des champs (exceptés "telephone", "comment" et "commentaire"), en affichant un message si ils ne sont pas remplis (annulant ainsi l'envoi du mail).
Par ailleurs j'aimerai aussi faire un check entre les champs "mail" et "cmail", si ils ne correspondent pas l'un avec l'autre ou s'ils ne contiennent pas une adresse mail valide, afficher un mesage et annuler l'envoi là aussi.
voici ce que j'ai déjà :
<?php //Initialisation des données $destinataire = "mon@adresse.fr"; $objet = ucfirst($_POST["Commande"]); $courriel = ucfirst($_POST['prenom']) . " " . ucfirst($_POST['nom']) . "<" . $_POST['mail'] . ">"; $texte = "Expediteur\n"; $texte .= "==========\n"; $texte .= "Nom : " . ucfirst($_POST['nom']) . "\n"; $texte .= "Prenom : " . ucfirst($_POST['prenom']) . "\n"; $texte .= "Discipline : " . ucfirst($_POST['discipline']) . "\n"; $texte .= "Etablissement : " . ucfirst($_POST['etablissement']) . "\n"; $texte .= "Adresse de l'etablissement: " . ucfirst($_POST['adresse']) . "\n"; $texte .= "Code Postal : " . ucfirst($_POST['postal']) . "\n"; $texte .= "Ville : " . ucfirst($_POST['ville']) . "\n"; $texte .= "Courriel : " . ucfirst($_POST['mail']) . "\n\n"; $texte .= "Courriel check : " . ucfirst($_POST['cmail']) . "\n\n"; $texte .= "Telephone : " . ucfirst($_POST['telephone']) . "\n"; $texte .= "=======\n"; $texte .= "Comment : " . ucfirst($_POST['comment']) . "\n"; $texte .= ucfirst($_POST['commentaire']) . "\n\n"; //Expédition du courriel mail($destinataire, $objet, $texte, "From: " . $mail . "\nReply-To:" . $_POST['mail']); header("Location: confirmation.html"); ?>
Cordialement.
Configuration: Windows 2003 / Firefox 3.6.12
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
Modifié par Mopra-L le 2/12/2010 à 10:59
Modifié par Mopra-L le 2/12/2010 à 10:59
Le mieux aurait été de faire du javascript.
Au moment de la soumission, le JS verifie si les champs sont remplis, et envoie le formulaire ou non.
Sinon, pour ton problème, tu peux faire les tests suivant :
J'adore les phrases où il des mots.
Au moment de la soumission, le JS verifie si les champs sont remplis, et envoie le formulaire ou non.
Sinon, pour ton problème, tu peux faire les tests suivant :
if (!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['discipline']) && !empty($_POST['etablissement']) && !empty($_POST['adresse']) && !empty($_POST['postal']) && !empty($_POST['ville']) && !empty($_POST['mail']) && strcmp($_POST['mail'],$_POST['cmail']) == 0) { mail($destinataire, $objet, $texte, "From: " . $mail . "\nReply-To:" . $_POST['mail']); }
J'adore les phrases où il des mots.
Toiine974
Messages postés
22
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
20 février 2013
4
2 déc. 2010 à 12:22
2 déc. 2010 à 12:22
merci pour vos réponses :
j'ai essayé ceci:
Seulement, lorsque je le teste (en local) il m'affiche du code php dans mon naviguateur, est-ce normal ? Peut-on tester cela en local ?
Par ailleurs, y'a il des erreurs dans le script ?
j'ai essayé ceci:
<?php //Initialisation des données $destinataire = "mon@adresse.fr"; $objet = ucfirst($_POST["Commande"]); $courriel = ucfirst($_POST['prenom']) . " " . ucfirst($_POST['nom']) . "<" . $_POST['mail'] . ">"; $texte = "Expediteur\n"; $texte .= "==========\n"; $texte .= "Nom : " . ucfirst($_POST['nom']) . "\n"; $texte .= "Prenom : " . ucfirst($_POST['prenom']) . "\n"; $texte .= "Discipline : " . ucfirst($_POST['discipline']) . "\n"; $texte .= "Etablissement : " . ucfirst($_POST['etablissement']) . "\n"; $texte .= "Adresse de l'etablissement: " . ucfirst($_POST['adresse']) . "\n"; $texte .= "Code Postal : " . ucfirst($_POST['postal']) . "\n"; $texte .= "Ville : " . ucfirst($_POST['ville']) . "\n"; $texte .= "Courriel : " . ucfirst($_POST['mail']) . "\n\n"; $texte .= "Courriel check : " . ucfirst($_POST['cmail']) . "\n\n"; $texte .= "Telephone : " . ucfirst($_POST['telephone']) . "\n"; $texte .= "=======\n"; $texte .= "Comment : " . ucfirst($_POST['comment']) . "\n"; $texte .= ucfirst($_POST['commentaire']) . "\n\n"; //Expédition du courriel if (!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['discipline']) && !empty($_POST['etablissement']) && !empty($_POST['adresse']) && !empty($_POST['postal']) && !empty($_POST['ville']) && !empty($_POST['mail']) && strcmp($_POST['mail'],$_POST['cmail']) == 0) { mail($destinataire, $objet, $texte, "From: " . $mail . "\nReply-To:" . $_POST['mail']); header("Location: confirmation.html"); } else { echo"Veuillez renseigner les champs obligatoires."; } ?>
Seulement, lorsque je le teste (en local) il m'affiche du code php dans mon naviguateur, est-ce normal ? Peut-on tester cela en local ?
Par ailleurs, y'a il des erreurs dans le script ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Lord Zero
Messages postés
459
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
15 juin 2018
115
2 déc. 2010 à 12:53
2 déc. 2010 à 12:53
le plus simple c'est de vérifier tes champs par du javascript,peux tu mettre le formulaire ici ?
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
2 déc. 2010 à 12:58
2 déc. 2010 à 12:58
Tu teste avec quoi ? Un simple navigateur ?
Pour exécuter du PHP, il te faut un serveur Apache, donc il te faut easyPHP ou WAMP
Pour exécuter du PHP, il te faut un serveur Apache, donc il te faut easyPHP ou WAMP
Toiine974
Messages postés
22
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
20 février 2013
4
Modifié par Toiine974 le 2/12/2010 à 13:24
Modifié par Toiine974 le 2/12/2010 à 13:24
Malheuresement, en javascript, j'y connais rien, déjà qu'en PHP, je suis quasiment sans connaissance...
Enfin, j'ai testé en ligne et cela fonctionne.
En revanche, le message apparaît dans une nouvelle page, si on le veut dans une fenêtre d'erreur, j'imagine qu'il faut faire intervenir du javascript ?
EDIT : En fait non, j'atteris sur une page blacne en cliquant sur envoyer, quels que soient les contenus des champs.
EDIT 2 : Résolu, il manquait un ";" devant le premier echo, par contre je trouve étrange que cela posait problème même quand la ligne n'étais pas censée être éxécutée.
Enfin, j'ai testé en ligne et cela fonctionne.
if (!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['discipline']) && !empty($_POST['etablissement']) && !empty($_POST['adresse']) && !empty($_POST['postal']) && !empty($_POST['ville']) && !empty($_POST['mail'])) { if (strcmp($_POST['mail'],$_POST['cmail']) == 0) { mail($destinataire, $objet, $texte, "From: " . $mail . "\nReply-To:" . $_POST['mail']); header("Location: confirmation.html"); } else { echo"Les Emails spécifiés ne correspondent pas." } } else { echo"Veuillez renseigner tous les champs obligatoires."; }
En revanche, le message apparaît dans une nouvelle page, si on le veut dans une fenêtre d'erreur, j'imagine qu'il faut faire intervenir du javascript ?
EDIT : En fait non, j'atteris sur une page blacne en cliquant sur envoyer, quels que soient les contenus des champs.
EDIT 2 : Résolu, il manquait un ";" devant le premier echo, par contre je trouve étrange que cela posait problème même quand la ligne n'étais pas censée être éxécutée.
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
2 déc. 2010 à 13:49
2 déc. 2010 à 13:49
Ce n'est pas si étrange que ca, tout le code est traité, pour vérifier les erreurs, même si cela à lieu dans une boucle où il ne passe jamais.
Pour faire apparaitre le message dans une nouvelle fenêtre, oui, il faut faire intervenir du javascript.
Pour faire apparaitre le message dans une nouvelle fenêtre, oui, il faut faire intervenir du javascript.