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
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",


A voir également:

8 réponses

salut, tu peux essayer ceci..
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
1
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
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à :
<?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
0
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
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 :

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.
0
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
merci pour vos réponses :
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 ?
0

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
le plus simple c'est de vérifier tes champs par du javascript,peux tu mettre le formulaire ici ?
0
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
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



0
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
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.
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.
0
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
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.

0