PHP : Obligation de remplir un champ & check
Toiine974
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
Mopra-L Messages postés 146 Date d'inscription Statut Membre Dernière intervention -
Mopra-L Messages postés 146 Date d'inscription Statut Membre Dernière intervention -
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 ce n'est pas le cas
Par ailleurs j'aimerai aussi faire un check entre les champs "mail" et "cmail",
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 ce n'est pas le cas
Par ailleurs j'aimerai aussi faire un check entre les champs "mail" et "cmail",
A voir également:
- PHP : Obligation de remplir un champ & check
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
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
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
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.
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
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
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.