|
|
|
| Validation de formulaire par poky17 |
lundi 10 septembre 2007 à 11:09:19 |
Configuration: Windows Vista Firefox 2.0.0.6
Bonjour,
Dans le code de ta page, regarde les quelques premières lignes : <h1>... Qu'est-ce qui les empêche de s'afficher, que le formulaire soit valide ou non ? Idem pour le code : seul le texte affiché change, pas le traitement (l'envoi de mail est déjà fait...) Par ailleurs, il manque des accolades { } après ton premier else... J'imagine qu'elles sont censées englober tout le code jusqu'au ?>... Bref, au final, voilà ma version : <!-- content -->
<div id="content">
<?php
// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['email']))
$message .= "Votre email<br/>";
if (empty($_POST['tel']))
$message .= "Votre téléphone<br/>";
if (empty($_POST['comments']))
$message .= "Votre message<br/>";
if (strlen($message) > strlen($msg_erreur))
{
echo "<h1>Formulaire invalide</h1>";
echo $message;
}
else
{
?>
<h1>Fomulaire validé</h1>
<div class="text">
<p align="center"> Votre message a bien été envoyé et sera traité très prochainement.</p>
<p align="center">Merci de votre visite.</p>
<?php
// Informations d'entête du mail:
$headers ="MIME-Version: 1.0\r\n";
$headers .='From: Formulaire InfoBulle';
$headers .='Reply-To: contact@info-bulle.net' ." \r\n";
$headers .='Content-Type: text/plain; ';
$headers .='charset="iso-8859-1"'."\r\n";
$headers .="Content-Transfer-Encoding: 8bit\r\n";
$headers .='X-Mailer:PHP/' . phpversion() . "\r\n";
// sujet du mail
$sujet = "Formulaire du site";
// corps du mail
$message ="\n Civilité : $civilite \n Nom : $nom \n Adresse : $adresse \n Email : $email \n Tél : $tel \n Commentaires : $comments";
$retval = mail("contact@info-bulle.net",$sujet,$message,$headers);
if (chk_crypt($_POST['code']))
echo "<font color='#009700'>=> Bravo, vous avez saisi le bon code !</font>" ;
else
echo "<font color='#FF0000'>=> Erreur, le code est incorrect</font>" ;
echo "</div>";
}
?>
</div>Xavier
(PS : n'hésite pas à utiliser les balises <code> du forum pour afficher le code source avec les indentations, histoire que ce soit plus clair !) |
Bonjour,
Merci Xavier de t'être occupé de mon cas, mais désolée, y'a encore du boulot pour tout le monde. Alors, première chose, si je suis ton code, ça me fout en l'air toute la mise en page. Pourquoi ? Pb de Div peut-être ? Si je ne rentre que le code du Captcha sans les champs obligatoires, ça me met formulaire invalide. Donc logique. Par contre, si je remplis les champs et le code de la Captcha, ça devrait marcher. Eh bien non, ça me met aussi formulaire invalide. Votre nom, votre tél, votre email. Il ne prend donc pas en compte le code. Par contre, le mieux c'est que ça n'est pas envoyé sur l'email. Ah on doit pas en être très loin. Merci à tous. Poky |
Ah, c'est un captcha !
Donc il faut faire la vérification avant d'envoyer le mail. Ensuite, si ça fout en l'air toute ta présentation, ça doit être parce que tu n'as pas tout mis sur le forum. J'ai bêtement fermé le <div>, mais si tu as d'autres choses dans le code qui sont censées aller au même endroit, il ne faut pas le fermer là où je l'ai fait. Bon, voilà ce que ça donne, du coup : <!-- content -->
<div id="content">
<?php
// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['email']))
$message .= "Votre email<br/>";
if (empty($_POST['tel']))
$message .= "Votre téléphone<br/>";
if (empty($_POST['comments']))
$message .= "Votre message<br/>";
if (strlen($message) > strlen($msg_erreur))
{
echo "<h1>Formulaire invalide</h1>";
echo $message;
}
elseif (!chk_crypt($_POST['code']))
{
echo "<h1>Code invalide</h1>";
echo "<font color='#FF0000'>=> Erreur, le code est incorrect</font>" ;
}
else
{
?>
<h1>Fomulaire validé</h1>
<div class="text">
<font color='#009700'>=> Bravo, vous avez saisi le bon code !</font>
<p align="center"> Votre message a bien été envoyé et sera traité très prochainement.</p>
<p align="center">Merci de votre visite.</p>
<?php
// Informations d'entête du mail:
$headers ="MIME-Version: 1.0\r\n";
$headers .='From: Formulaire InfoBulle';
$headers .='Reply-To: contact@info-bulle.net' ." \r\n";
$headers .='Content-Type: text/plain; ';
$headers .='charset="iso-8859-1"'."\r\n";
$headers .="Content-Transfer-Encoding: 8bit\r\n";
$headers .='X-Mailer:PHP/' . phpversion() . "\r\n";
// sujet du mail
$sujet = "Formulaire du site";
// corps du mail
$message ="\n Civilité : $civilite \n Nom : $nom \n Adresse : $adresse \n Email : $email \n Tél : $tel \n Commentaires : $comments";
$retval = mail("contact@info-bulle.net",$sujet,$message,$headers);
// [... placer tout le reste qui ne doit apparaître que pour un formulaire valide ...]
}
// [... reste du code commun aux cas "valide" et "invalide" ...]
?> |
| 28/02 12h38 | Validation formulaire clavier (IE) | Webmastering | 28/02 17h15 | 12 |
| 13/03 10h42 | PHP validation formulaire dreamweaver8 | Programmation | 19/03 10h30 | 5 |
| 13/03 10h37 | Validation formulaire sur dreamweaver 8 | Webmastering | 13/03 14h24 | 1 |
| 22/09 17h15 | Suprimer image de validation formulaire | Programmation | 22/09 17h15 | 0 |
| 19/11 13h55 | Redirection : problème validation formulaire | Webmastering | 08/02 11h37 | 10 |