Vérification des champs vides
Résolu/Fermé
A voir également:
- Vérification des champs vides
- Vérification url - Guide
- Vérification d'état du pc - Guide
- En cours de verification le bon coin - Forum Hotmail / Outlook.com
- Supprimer lignes vides excel fin de tableau - Forum Excel
- Code de vérification reçu sans l'avoir demandé ✓ - Forum Mail
7 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
31 oct. 2011 à 20:52
31 oct. 2011 à 20:52
Des erreurs de positionnement de parties de codes, les fonctions ne doivent pas être dans la partie condition
voir aussi mes commentaires
voir aussi mes commentaires
<?php /* ******************************************************************************************** CONFIGURATION ******************************************************************************************** */ // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule $destinataire = 'mon@email'; // copie ? (envoie une copie au visiteur) $copie = 'oui'; // 'oui' ou 'non' // Messages de confirmation du mail header('Location: merci.html'); // Messages d'erreur du formulaire $message_erreur_formulaire = "Vous devez d'abord envoyer le formulaire."; $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur."; /* ******************************************************************************************** FIN DE LA CONFIGURATION ******************************************************************************************** */ ////FONCTIONS ////// /* * cette fonction sert à nettoyer et enregistrer un texte */ function Rec($text) { $text = trim($text); // delete white spaces after & before text if (1 === get_magic_quotes_gpc()) { $stripslashes = create_function('$txt', 'return stripslashes($txt);'); } else { $stripslashes = create_function('$txt', 'return $txt;'); } // magic quotes ? $text = $stripslashes($text); $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well $text = nl2br($text); return $text; } /* * Cette fonction sert à vérifier la syntaxe d'un email */ function IsEmail($email) { $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$"; return (eregi($pattern,$email)) ? true : false; }; ///fin des fonctions //recup des champs postés sinon initialisation à vide // formulaire envoyé, on récupère tous les champs. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $adresse = (isset($_POST['adresse'])) ? Rec($_POST['adresse']) : ''; $telephone = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : ''; $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : ''; $paiement = (isset($_POST['paiement'])) ? Rec($_POST['paiement']) : ''; $modele = (isset($_POST['modele'])) ? Rec($_POST['modele']) : ''; $prix = (isset($_POST['prix'])) ? Rec($_POST['prix']) : ''; // On va vérifier les variables et l'email ... $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré // on teste si le formulaire a été soumis if (!isset($_POST['envoi'])) { // formulaire non envoyé echo '<p>'.$message_erreur_formulaire.'</p>'."\n"; } else { if (($nom != '') && ($email != '') && ($adresse != '') && ($telephone != '') && ($prenom != '') && ($paiement != '') && ($modele != '') && ($prix != '')) { // les variables sont remplies, on génère puis envoie le mail $headers = 'From: '.$email.'' . "\r\n"; // envoyer une copie au visiteur ? if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; // Remplacement de certains caractères spéciaux $message = str_replace("'","'",$message); $message = str_replace("'","'",$message); $message = str_replace("\"",'"',$message); //déja une erreur a cette ligne il faut échapper le " $message = str_replace('<br>','',$message); $message = str_replace('<br />','',$message); $message = str_replace("<","<",$message); $message = str_replace(">",">",$message); $message = str_replace("&","&",$message); $message = str_replace("é","é",$message); $message = str_replace("è","è",$message); $message = str_replace("€","€",$message); $message = 'Nom : '.$nom."\r\n\r\n"; $message .= 'Prénom : '.$prenom."\r\n\r\n"; $message .= 'Adresse : '.$adresse."\r\n\r\n"; $message .= 'Téléphone : '.$telephone."\r\n\r\n"; $message .= 'Modèle : '.$modele."\r\n\r\n"; $message .= 'Prix : '.$prix."\r\n\r\n"; $message .= 'Type De Paiement : '.$paiement."\r\n"; // Envoi du mail if (mail($cible, 'Nouvelle Commande', $message, $headers)) { echo '<p>'.$message_envoye.'</p>'."\n"; } else { echo '<p>'.$message_non_envoye.'</p>'."\n"; }; } else { // une des 3 variables (ou plus) est vide ... echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n"; }; }; // fin du if (!isset($_POST['envoi'])) ?>
Merci pour ta réponse.
J'ai vu que t'avais restructuré le mail, et remarqué une erreur, j'ai corrigé cela, mais ca ne fonctionne toujours pas, ca m'envois encore a la page de remerciement alors que j'ai rien remplis.
Et pour ce commentaire que tu as mis : //recup des champs postés sinon initialisation à vide
Cela veut dire que j'ai oublié d'initier ou c'est ce que fait cette fonction?
J'ai vu que t'avais restructuré le mail, et remarqué une erreur, j'ai corrigé cela, mais ca ne fonctionne toujours pas, ca m'envois encore a la page de remerciement alors que j'ai rien remplis.
Et pour ce commentaire que tu as mis : //recup des champs postés sinon initialisation à vide
Cela veut dire que j'ai oublié d'initier ou c'est ce que fait cette fonction?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
1 nov. 2011 à 11:02
1 nov. 2011 à 11:02
avec cette methode:
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
cela veut dire:
si le mon est posté alors $nom= valeur postée : sinon $nom= vide
mais comme tu vait mis cette partie de code dans une condition if(!isset
une des deux condition n'était jamais possible
Cela veut dire que j'ai oublié d'initier ou c'est ce que fait cette fonction? cette methode test initialise à vide si pas postée donc tu avait bien initialisé mais pas au bon endroit
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
cela veut dire:
si le mon est posté alors $nom= valeur postée : sinon $nom= vide
mais comme tu vait mis cette partie de code dans une condition if(!isset
une des deux condition n'était jamais possible
Cela veut dire que j'ai oublié d'initier ou c'est ce que fait cette fonction? cette methode test initialise à vide si pas postée donc tu avait bien initialisé mais pas au bon endroit
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
1 nov. 2011 à 11:47
1 nov. 2011 à 11:47
concernant ton pb, tu as dès le début de ta page appelée par la soumission du formulaire:
// Messages de confirmation du mail
header('Location: merci.html');
donc automatiquement le header redirige vers la page merci.html sans aller plus loin dans le script
// Messages de confirmation du mail
header('Location: merci.html');
donc automatiquement le header redirige vers la page merci.html sans aller plus loin dans le script
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Donc si je comprend bien, je dois mettre le
// Messages de confirmation du mail
header('Location: merci.html');
plus bas dans le script?
Est ce qu'il doit etre a une place bien précise?
Ou est ce que je peu le mettre tout en bas?
Merci pour tes conseils en tout cas, c'est sympas :)
// Messages de confirmation du mail
header('Location: merci.html');
plus bas dans le script?
Est ce qu'il doit etre a une place bien précise?
Ou est ce que je peu le mettre tout en bas?
Merci pour tes conseils en tout cas, c'est sympas :)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
1 nov. 2011 à 14:48
1 nov. 2011 à 14:48
a la place de
if (mail($cible, 'Nouvelle Commande', $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
tu mets ton header
if (mail($cible, 'Nouvelle Commande', $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
tu mets ton header
if (mail($cible, 'Nouvelle Commande', $message, $headers)) { // Messages de confirmation du mail header('Location: merci.html'); }