KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Mardi 20 mai 2008 - 21:42:36

Validation de formulaire

Rechercher : dans
Validation de formulaire
par poky17
 Fil de Discussions
Statut : Non résolu
lundi 10 septembre 2007 à 11:09:19
Bonjour,

Bon, alors des nouvelles toutes fraîches !!!
ça va un peu mieux, j'ai essayé sur un formulaire de contact.
Les infos sont renvoyées sur une page qui s'appelle traitement.php, j'ai donc tout mis dedans.
Alors, maintenant, si le code est absent ou incorrect, il affiche le message correspondant, mais il valide le formulaire quoi qu'il arrive.
D'ailleurs, il doit y avoir une erreur quelque part, car les champs obligatoires s'ils ne sont pas remplis, on le signale, mais ça valide aussi.
Je vous fournis l'extrait de code de traitement.php.
Merci à tous.
Poky

<!-- content -->
<div id="content">
<h1>Fomulaire validé</h1>
<div class="text">
<p align="center"> Votre message a bien été envoyé et sera traité très prochainement.</>
<p align="center">Merci de votre visite.</p>
<?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 $message;


} else


// 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 "<a><font color='#009700'>=> Bravo, vous avez saisi le bon code !</font></a>" ;
else echo "<a><font color='#FF0000'>=> Erreur, le code est incorrect</font></a>" ;

?>
Configuration: Windows Vista
Firefox 2.0.0.6
Répondre à poky17  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Reivax962, le lundi 10 septembre 2007 à 11:44:32 Fil de Discussions
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 !)
Répondre à Reivax962

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par poky17, le mardi 11 septembre 2007 à 10:31:09 Fil de Discussions
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
Répondre à poky17

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par Reivax962, le mardi 11 septembre 2007 à 10:47:19 Fil de Discussions 
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" ...]
?>
Répondre à Reivax962
Discussions pertinentes trouvées dans le forum
28/02 12h38Validation formulaire clavier (IE)Webmastering28/02 17h1512
13/03 10h42PHP validation formulaire dreamweaver8Programmation19/03 10h305
13/03 10h37Validation formulaire sur dreamweaver 8Webmastering13/03 14h241
22/09 17h15Suprimer image de validation formulaireProgrammation22/09 17h150
19/11 13h55Redirection : problème validation formulaireWebmastering08/02 11h3710
Plus de discussions sur « Validation de formulaire » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide