Problème de formulaire

Bonjour,

Désolé de créer je pense un énième sujet sur les formulaires, mais dans mes recherches je n'ai pas trouvé mon onheur.

Je conçois un site en HTML et je souhaite faire un formulaire de contact; seulement je n'y arrive pas.
Je dispose de DR CS4. j'essaye avec les champs textes spry, je construit mon formulaire, mais c'est bien beau a part mettre les boutons et les noms, je ne vois pas comment l'envoyer directement sur l'adresse email que je souhaite
Voila pour le moment mon code :

<form method="post" action="traitement.php">
<p><span id="sprytextfield1">
<label>Nom
<input type="text" name="nom" id="nom" tabindex="1" />
</label>
<span class="textfieldRequiredMsg">Une valeur est requise.</span></span></p>
<p><span id="sprytextfield2">
<label>Prénom
<input type="text" name="prenom" id="prenom" tabindex="2" />
</label>
<span class="textfieldRequiredMsg">Une valeur est requise.</span></span></p>
<p><span id="sprytextfield3">
<label>E-mail
<input type="text" name="email" id="email" tabindex="3" />
</label>
<span class="textfieldRequiredMsg">Une valeur est requise.</span><span class="textfieldInvalidFormatMsg">Format non valide.</span></span></p>
<p><span id="sprytextfield4">
<label>Titre
<input type="text" name="titre" id="titre" tabindex="4" />
</label>
</span></p>
<p><span id="sprytextarea1">
<label>Message
<textarea name="message" id="message" cols="45" rows="5" tabindex="5"></textarea>
</label>
<span class="textareaRequiredMsg">Une valeur est requise.</span></span></p>
<p>
<label>
<input type="submit" name="envoyer" id="envoyer" value="Envoyer" />
</label>
</p>
</form>

j'ai vu dans des eplications qu'il fallait donc creer une page php qui est ici traitement.php
<?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre message nous a bien été envoyé.";
$message = $msg_erreur;

define('MAIL_DESTINATAIRE','######@####.com');~ //j'ai modifié volontairement l email pour le post
define('MAIL_SUJET','Formulaire de contact Tuan-gallery Photographie');

// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['email']))
$message .= "Votre adresse mail<br/>";

if (strlen($message) > strlen($msg_erreur)) {

echo $message;

}

else {

foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}

//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

// préparation du corps du mail
$mail_corps = "Message de : $civilite $nom\n";
$mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";
$mail_corps .= "Ses rubriques préférées : $sqlpref\n\n\n";
$mail_corps .= $message;

/ envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {

//Le mail est bien expédié
echo $msg_ok;
} else {

//Le mail n'a pas été expédié
echo 'Suite à un problème technique, votre message n a pas été envoyé';
}
}
?>

Mais y'a rien qui marche, et pour etre honnete y a des parties que je comprends pas.
Si quelqu'un pouvait m'aider ce serait super sympa

Je vous remercie par avance
Configuration: Windows Vista
Firefox 3.5.3

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. bonjour,

    j'ai juste ragerder vite fais voici une erreur:
    else {
    
    foreach($_POST as $index => $valeur) {
    $$index = stripslashes(trim($valeur));
    }
    

    remplacer par:
    else {
    
    foreach($_POST as $index => $valeur) {
    $index = stripslashes(trim($valeur));
    }
    

    il y avait un $ de trop !
    1. Bonjour Nico,

      merci j'ai corrigé ca, mais ca ne marche toujours pas :(
      je desespere..lol
      1. re:
        / envoi du mail
        if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) { 

        donc dans le code que j'ai copier depuis ce que tu nous donne il y a 3 fautes !
        / envoi du mail
        remplacer par :
        // envoi du mail

        if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
        remplacer par:
        if (mail('TON_ADRESSE_M@il','Contact_de_mon_site',$mail_corps,$mail_entete)) {

        Il faut que tu remplace : TON_ADRESSE_M@il par la vrai adresse
        Contact_de_mon_site => c'est le sujet que tu veux voir apparaitre
        il faut bien que tu laisses les ' ' tu écris entre !

        donne des nouvelles
        1. salut,

          J'ai corrigé ce que tu m'as dit, voila l'erreur que j'ai une fois validé (page blanche avec tout ca d'écrit)

          "; $msg_ok = "Votre message nous a bien été envoyé."; $message = $msg_erreur; define('MAIL_DESTINATAIRE','######l@###.com'); define('MAIL_SUJET','Formulaire de contact Tuan-gallery Photographie'); // vérification des champs if (empty($_POST['nom'])) $message .= "Votre nom
          "; if (empty($_POST['email'])) $message .= "Votre adresse mail
          "; if (strlen($message) > strlen($msg_erreur)) { echo $message; } else { foreach($_POST as $index => $valeur) { $index = stripslashes(trim($valeur)); } //Préparation de l'entête du mail: $mail_entete = "MIME-Version: 1.0\r\n"; $mail_entete .= "From: {$_POST['nom']} " ."<{$_POST['email']}>\r\n"; $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n"; $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"'; $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n"; $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n"; // préparation du corps du mail $mail_corps = "Message de : $civilite $nom\n"; $mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n"; $mail_corps .= "Ses rubriques préférées : $sqlpref\n\n\n"; $mail_corps .= $message; // envoi du mail if (mail('#######@###.com','contact Tuan-Gallery',$mail_corps,$­mail_entete)) { //Le mail est bien expédié echo $msg_ok; } else { //Le mail n'a pas été expédié echo 'Suite à un problème technique, votre message n a pas été envoyé'; } } ?>

          Mon code php que j'ai corrigé grace a toi (je l'ai fait en ouvrant une nouvelle feuille php dans dreamweaver que j ai nommé traitement.php) [j'explique ca on sait jamais si j'ai fait une erreur dans ces choses la]

          <?php
          $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
          $msg_ok = "Votre message nous a bien été envoyé.";
          $message = $msg_erreur;

          define('MAIL_DESTINATAIRE','#####l@###.com');
          define('MAIL_SUJET','Formulaire de contact Tuan-gallery Photographie');

          // vérification des champs
          if (empty($_POST['nom']))
          $message .= "Votre nom<br/>";
          if (empty($_POST['email']))
          $message .= "Votre adresse mail<br/>";

          if (strlen($message) > strlen($msg_erreur)) {

          echo $message;

          }

          else {

          foreach($_POST as $index => $valeur) {
          $index = stripslashes(trim($valeur));
          }

          //Préparation de l'entête du mail:
          $mail_entete = "MIME-Version: 1.0\r\n";
          $mail_entete .= "From: {$_POST['nom']} "
          ."<{$_POST['email']}>\r\n";
          $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
          $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
          $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
          $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

          // préparation du corps du mail
          $mail_corps = "Message de : $civilite $nom\n";
          $mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";
          $mail_corps .= "Ses rubriques préférées : $sqlpref\n\n\n";
          $mail_corps .= $message;

          // envoi du mail
          if (mail('####@###.com','contact Tuan-Gallery',$mail_corps,$­mail_entete)) {

          //Le mail est bien expédié
          echo $msg_ok;
          } else {

          //Le mail n'a pas été expédié
          echo 'Suite à un problème technique, votre message n a pas été envoyé';
          }
          }
          ?>

          merci de ton aide Nico, je vais en avoir grand besoin !!
          1. bon, je n'ai pas plus de temps car j'ai eu un imprévu (on s'en fou je sais!)voici donc un générateur de formulaire php

            bonne soirée si il a un problème donne des infos ici, je devrais arriver a me reconnecter
            1. Le problèmen, c'est que tu insères directement ton script PHP comme du texte normal, c'est-à-dire en mode WYSIWYG (si tu ne parles pas chinois, c'est comme dans Word) → Passe en mode "source" et n'oublie pas de renommer tes pages en .php
              1. t'inquietes avion-f16 j'en suis quand même pas a ce point la.
                Je mets bien mon code dans la partie code et pas dans l'écriture comme sous word..
                et mon fichier se nomme bien traitement.php

                je vais essayer ce formulaire php alors, merci nico