Ajout champ texte sur un formulaire

Ajout champ texte sur un formulaire - PHP - Programmation

Marsh Posté le 06-06-2011 à 11:17:46    

Bonjour, voila je ne connait que peu le language PHP, et je suis en train de faire un formulaire(j'ai récupérer le plus gros en ressource .ZIP !).
 
Mais voila ce formulaire propose: Nom, Adresse e-mail et Message. Je veut ajouter un Sujet mais j'ai essayer avec mes connaissance(prendre le code de Nom et remplacer par $subject mais rien à faire)
 
Voici mes pages php.
 
index.php:

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  5.         <!-- On va utiliser JQuery pour le style de notre formulaire de contact ! Donc, avec ces lignes de codes, on va "inclure" JQuery -->
  6.         <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
  7.         <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  8.         <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
  9.         <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  10.         <!-- Fin JQuery -->
  11.         <!-- On va inclure maintenant notre fichier css -->
  12.         <link rel="stylesheet" media="screen" type="text/css" title="Design" href="main.css"/>
  13.         <!-- Fin Fichier CSS -->
  14.         <title> Formulaire de contact </title>
  15.     <script>
  16.       $(document).ready(function() {
  17.         // Ajuster le largeur de la page selon la largeur de l'écran
  18.         var width = $(window).width();
  19.             $('body').css('width', width);
  20.         // Initialiser les boutons JQuery
  21.         $(":submit, :reset" ).button();
  22.         //Initialiser l'accordion JQuery qu'on va utiliser plus tard
  23.         $('#shortcuts').accordion({collapsible: true, active: 3, clearStyle: true });
  24.         $('#shortcuts').accordion( "option", "icons", { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' });
  25.         //Initialiser la boîte de dialogue JQuery
  26.          $(document).ready(function() {
  27.                 $("#dialog" ).dialog({ autoOpen: false, hide: "fade", title: 'R&eacute;sultat de la requ&ecirc;te ...', buttons: [
  28.     {
  29.         text: "Ok",
  30.         click: function() { $(this).dialog("close" ); }
  31.     }
  32. ] });
  33.         });
  34.         // La requête Ajax qu'on va utiliser pour l'envoie de l'email
  35.         $('#emailContact').submit(function() {
  36.             $.ajax({
  37.                type: "POST",
  38.                url: "contact.php",
  39.                data: $(this).serialize(),
  40.                success: function(data){
  41.                  $("#dialog" ).dialog("open" );
  42.                  $("#dialog p" ).html(data);
  43.                  $("input:text, textarea" ).val('');
  44.                }
  45.              });
  46.         });
  47.         });
  48.     </script>
  49.     </head>
  50.     <body>
  51.         <!-- Div #content -->
  52.         <div id="content">
  53.             <h2> Formulaire de Contact </h2>
  54.                 <!-- La partie de Contact ! Il y a 3 champs de texte, le nom, le mail ET le message. Si vous êtes experts en PHP, vous pouvez ajouter d'autres champs ! -->
  55.             <div id="contactForm">
  56.                 <form action="#" onsubmit="return false;" id="emailContact" class="contact" method="post">
  57.                     <div class="field">
  58.                       <label for="name">Nom</label>
  59.                       <input type="text" name="name" id="name" value="" class="text" />
  60.                     </div>
  61.                     <div class="field">
  62.                       <label for="email">Adresse e-mail</label>
  63.                       <input type="text" name="email" id="email" value="" class="text" />
  64.                     </div>
  65.                     <div class="field">
  66.                       <label for="message">Message</label>
  67.                       <textarea class="textbox" name="message" id="message" rows="10" cols="25"></textarea>
  68.                     </div>
  69.                     <div class="buttons">
  70.                       <input type="submit" value="Envoyer" class="submit" />
  71.                       <input type="reset" value="Effacer" class="submit reset" />
  72.                     </div>
  73.                   </form>
  74.                   <!-- end #contactForm -->
  75.                   <!-- La boîte de dialogue invisible au début -->
  76.                   <div id="dialog"><p></p></div>
  77.                 </div>
  78.                 <!-- end #contact -->
  79.             </div>
  80.             <!-- end #contact -->
  81.         </div>
  82.         <!-- End #content -->
  83.     </body>
  84. </html>


et
 
contact.php

Code :
  1. <?php
  2. /** La fonction d'envoie de mail. Elle prend en paramétre, le sujet, le mail, le texte et le nom de l'utilisateur
  3. Elle fait les vérifications nécessaires sur le nom, mail, et message puis renvoie un message d'erreur en cas d'erreur sinon un message de succés **/
  4.    function contact($sujet, $mail, $texte, $nomUtilisateur)
  5.    {
  6.     if($mail == NULL OR !preg_match("#^[a-z0-9._-]+@[a-z]+.[a-z]{2,4}$#", $mail)){
  7.         $error = "<center> Attention ! <br/> Veuillez entrer une adresse e-mail valide.<br/>ex: monnom@exemple.fr</center>";
  8.         return $error;}
  9.     if($nomUtilisateur == NULL){
  10.         $error = "<center> Attention ! <br/> Vous devez entrer un nom.</center>";
  11.         return $error;}
  12.     if($texte == NULL OR strlen($texte) < 10){
  13.         $error = "<center> Attention ! <br/> Votre message doit contenir au moins dix caract&egrave;res.</center>";
  14.          return $error;}
  15.             if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // O,n filtre les serveurs qui bugs
  16.             {
  17.                     $passage_ligne = "rn";
  18.             }
  19.             else
  20.             {
  21.                     $passage_ligne = "n";
  22.             }
  23.             //=====Déclaration des messages au format texte
  24.             $message_txt = $texte;
  25.         $message_html = $texte;
  26.             //==========
  27.             //=====Création de la boundary
  28.             $boundary = "-----=".md5(rand());
  29.             //==========
  30.             //=====Définition du sujet
  31.             $sujet = (htmlspecialchars($sujet));
  32.             //=========
  33.             //=====Création du header de l'e-mail
  34.             $header = "From: "".$nomUtilisateur.""<".$mail.">".$passage_ligne;
  35.             $header.= "Reply-to: "".$nomUtilisateur.""<"".$mail."">".$passage_ligne;
  36.             $header.= "MIME-Version: 1.0".$passage_ligne;
  37.             $header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary="".$boundary.""".$passage_ligne;
  38.             //==========
  39.              //=====Création du message
  40.         $message = $passage_ligne.$boundary.$passage_ligne;
  41.         //=====Ajout du message au format texte
  42.         $message.= "Content-Type: text/plain; charset="UTF-8"".$passage_ligne;
  43.         $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  44.         $message.= $passage_ligne.$message_txt.$passage_ligne;
  45.         //==========
  46.         $message.= $passage_ligne."--".$boundary.$passage_ligne;
  47.         //=====Ajout du message au format HTML
  48.         $message.= "Content-Type: text/html; charset="UTF-8"".$passage_ligne;
  49.         $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  50.         $message.= $passage_ligne.$message_html.$passage_ligne;
  51.         //==========
  52.         $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
  53.         //==========
  54.         //=====Ajout du message au format HTML
  55.         $message.= "Content-Type: text/html; charset="UTF-8"".$passage_ligne;
  56.         $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  57.         $message.= $passage_ligne.$message_html.$passage_ligne;
  58.             $contact = 'myname@exemple.fr'; // Vous changez selon votre mail
  59.             //=====Envoi de l'e-mail
  60.             if(mail($contact,$sujet,$message,$header))
  61.         return $error="";
  62.         else
  63.         return $error="Une erreur est intervenue lors de l'envoi de votre message !";
  64.             //==========
  65.    }
  66. /* Si la variable existe c'est que l'utilisateur a validé l'envoie ... alors, on va passer les info à notre fonction contact et voyons le résultat */
  67. if(isset($_POST['name']))
  68. {
  69.     $result = contact("Site Perso - Formulaire de contact", $_POST['email'], $_POST['message'], $_POST['name']);
  70.     if($result != "" )
  71.         echo "<p><center><strong>Votre message n'a pas pu &ecirc;tre envoy&eacute;, il contient des erreurs : </strong></center><br/>
  72.         <strong><u><i>".$result."</i></u></strong></p>";
  73.     else
  74.         echo "<center><strong>Votre message a &eacute;t&eacute; envoy&eacute; avec succ&egrave;s !</strong></center>";
  75. }
  76. ?>


Si quelqu'un peut me dire quoi rajouter se serais super cool.
 
Très cordialement,
 
Viper07

Reply

Marsh Posté le 06-06-2011 à 11:17:46   

Reply

Marsh Posté le 06-06-2011 à 15:53:31    

ça devrait marcher :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  5.         <!-- On va utiliser JQuery pour le style de notre formulaire de contact ! Donc, avec ces lignes de codes, on va "inclure" JQuery -->
  6.         <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
  7.         <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  8.         <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
  9.         <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  10.         <!-- Fin JQuery -->
  11.         <!-- On va inclure maintenant notre fichier css -->
  12.         <link rel="stylesheet" media="screen" type="text/css" title="Design" href="main.css"/>
  13.         <!-- Fin Fichier CSS -->
  14.         <title> Formulaire de contact </title>
  15.     <script>
  16.       $(document).ready(function() {
  17.         // Ajuster le largeur de la page selon la largeur de l'écran
  18.         var width = $(window).width();
  19.             $('body').css('width', width);
  20.         // Initialiser les boutons JQuery
  21.         $(":submit, :reset";).button();
  22.         //Initialiser l'accordion JQuery qu'on va utiliser plus tard
  23.         $('#shortcuts').accordion({collapsible: true, active: 3, clearStyle: true });
  24.         $('#shortcuts').accordion( "option", "icons", { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' });
  25.         //Initialiser la boîte de dialogue JQuery
  26.          $(document).ready(function() {
  27.                 $("#dialog";).dialog({ autoOpen: false, hide: "fade", title: 'R&eacute;sultat de la requ&ecirc;te ...', buttons: [
  28.     {
  29.         text: "Ok",
  30.         click: function() { $(this).dialog("close";); }
  31.     }
  32. ] });
  33.         });
  34.         // La requête Ajax qu'on va utiliser pour l'envoie de l'email
  35.         $('#emailContact').submit(function() {
  36.             $.ajax({
  37.                type: "POST",
  38.                url: "contact.php",
  39.                data: $(this).serialize(),
  40.                success: function(data){
  41.                  $("#dialog";).dialog("open";);
  42.                  $("#dialog p";).html(data);
  43.                  $("input:text, textarea";).val('');
  44.                }
  45.              });
  46.         });
  47.         });
  48.     </script>
  49.     </head>
  50.     <body>
  51.         <!-- Div #content -->
  52.         <div id="content">
  53.             <h2> Formulaire de Contact </h2>
  54.                 <!-- La partie de Contact ! Il y a 3 champs de texte, le nom, le mail ET le message. Si vous êtes experts en PHP, vous pouvez ajouter d'autres champs ! -->
  55.             <div id="contactForm">
  56.                 <form action="#" onsubmit="return false;" id="emailContact" class="contact" method="post">
  57.                     <div class="field">
  58.                       <label for="name">Nom</label>
  59.                       <input type="text" name="name" id="name" value="" class="text" />
  60.                     </div>
  61.                     <div class="field">
  62.                       <label for="email">Adresse e-mail</label>
  63.                       <input type="text" name="email" id="email" value="" class="text" />
  64.                     </div>
  65.                     <div class="field">
  66.                       <label for="name">Sujet</label>
  67.                       <input type="text" name="subject" id="subject" value="" class="text" />
  68.                     </div>
  69.                     <div class="field">
  70.                       <label for="message">Message</label>
  71.                       <textarea class="textbox" name="message" id="message" rows="10" cols="25"></textarea>
  72.                     </div>
  73.                     <div class="buttons">
  74.                       <input type="submit" value="Envoyer" class="submit" />
  75.                       <input type="reset" value="Effacer" class="submit reset" />
  76.                     </div>
  77.                   </form>
  78.                   <!-- end #contactForm -->
  79.                   <!-- La boîte de dialogue invisible au début -->
  80.                   <div id="dialog"><p></p></div>
  81.                 </div>
  82.                 <!-- end #contact -->
  83.             </div>
  84.             <!-- end #contact -->
  85.         </div>
  86.         <!-- End #content -->
  87.     </body>
  88. </html>


et
 
contact.php

Code :
  1. <?php
  2. /** La fonction d'envoie de mail. Elle prend en paramétre, le sujet, le mail, le texte et le nom de l'utilisateur
  3. Elle fait les vérifications nécessaires sur le nom, mail, et message puis renvoie un message d'erreur en cas d'erreur sinon un message de succés **/
  4.    function contact($sujet, $mail, $texte, $nomUtilisateur)
  5.    {
  6.     if($mail == NULL OR !preg_match("#^[a-z0-9._-]+@[a-z]+.[a-z]{2,4}$#", $mail)){
  7.         $error = "<center> Attention ! <br/> Veuillez entrer une adresse e-mail valide.<br/>ex: monnom@exemple.fr</center>";
  8.         return $error;}
  9.     if($nomUtilisateur == NULL){
  10.         $error = "<center> Attention ! <br/> Vous devez entrer un nom.</center>";
  11.         return $error;}
  12.     if($texte == NULL OR strlen($texte) < 10){
  13.         $error = "<center> Attention ! <br/> Votre message doit contenir au moins dix caract&egrave;res.</center>";
  14.          return $error;}
  15.             if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // O,n filtre les serveurs qui bugs
  16.             {
  17.                     $passage_ligne = "rn";
  18.             }
  19.             else
  20.             {
  21.                     $passage_ligne = "n";
  22.             }
  23.             //=====Déclaration des messages au format texte
  24.             $message_txt = $texte;
  25.         $message_html = $texte;
  26.             //==========
  27.             //=====Création de la boundary
  28.             $boundary = "-----=".md5(rand());
  29.             //==========
  30.             //=====Définition du sujet
  31.             $sujet = (htmlspecialchars($sujet));
  32.             //=========
  33.             //=====Création du header de l'e-mail
  34.             $header = "From: "".$nomUtilisateur.""<".$mail.">".$passage_ligne;
  35.             $header.= "Reply-to: "".$nomUtilisateur.""<"".$mail."">".$passage_ligne;
  36.             $header.= "MIME-Version: 1.0".$passage_ligne;
  37.             $header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary="".$boundary.""".$passage_ligne;
  38.             //==========
  39.              //=====Création du message
  40.         $message = $passage_ligne.$boundary.$passage_ligne;
  41.         //=====Ajout du message au format texte
  42.         $message.= "Content-Type: text/plain; charset="UTF-8"".$passage_ligne;
  43.         $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  44.         $message.= $passage_ligne.$message_txt.$passage_ligne;
  45.         //==========
  46.         $message.= $passage_ligne."--".$boundary.$passage_ligne;
  47.         //=====Ajout du message au format HTML
  48.         $message.= "Content-Type: text/html; charset="UTF-8"".$passage_ligne;
  49.         $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  50.         $message.= $passage_ligne.$message_html.$passage_ligne;
  51.         //==========
  52.         $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
  53.         //==========
  54.         //=====Ajout du message au format HTML
  55.         $message.= "Content-Type: text/html; charset="UTF-8"".$passage_ligne;
  56.         $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  57.         $message.= $passage_ligne.$message_html.$passage_ligne;
  58.             $contact = 'myname@exemple.fr'; // Vous changez selon votre mail
  59.             //=====Envoi de l'e-mail
  60.             if(mail($contact,$sujet,$message,$header))
  61.         return $error="";
  62.         else
  63.         return $error="Une erreur est intervenue lors de l'envoi de votre message !";
  64.             //==========
  65.    }
  66. /* Si la variable existe c'est que l'utilisateur a validé l'envoie ... alors, on va passer les info à notre fonction contact et voyons le résultat */
  67. if(isset($_POST['name']))
  68. {
  69.     $result = contact($_POST['subject'], $_POST['email'], $_POST['message'], $_POST['name']);
  70.     if($result != "";)
  71.         echo "<p><center><strong>Votre message n'a pas pu &ecirc;tre envoy&eacute;, il contient des erreurs : </strong></center><br/>
  72.         <strong><u><i>".$result."</i></u></strong></p>";
  73.     else
  74.         echo "<center><strong>Votre message a &eacute;t&eacute; envoy&eacute; avec succ&egrave;s !</strong></center>";
  75. }
  76. ?>

Reply

Marsh Posté le 07-06-2011 à 11:23:48    

Non cela ne marche pas désolé

Reply

Marsh Posté le 07-06-2011 à 11:34:30    

http://forum.hardware.fr/hfr/Progr [...] 0261_1.htm
 
Quels sont les symptômes ?
Dire que ça ne marche pas n'aide pas à résoudre le problème.

Reply

Marsh Posté le 07-06-2011 à 21:11:19    

Désolé mais je n'avais pas trop le temps au moment où j'ai poster :(
 
Enfaite je clique sur Envoyer mais aucune réaction, j'ai mis le code en ligne: http://ben.du.07.free.fr/form3/

Reply

Marsh Posté le 07-06-2011 à 23:49:28    

J'ai résolu mon problème :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed