ben07 | 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 :
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
- <!-- On va utiliser JQuery pour le style de notre formulaire de contact ! Donc, avec ces lignes de codes, on va "inclure" JQuery -->
- <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
- <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
- <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
- <!-- Fin JQuery -->
- <!-- On va inclure maintenant notre fichier css -->
- <link rel="stylesheet" media="screen" type="text/css" title="Design" href="main.css"/>
- <!-- Fin Fichier CSS -->
- <title> Formulaire de contact </title>
- <script>
- $(document).ready(function() {
- // Ajuster le largeur de la page selon la largeur de l'écran
- var width = $(window).width();
- $('body').css('width', width);
- // Initialiser les boutons JQuery
- $(":submit, :reset" ).button();
- //Initialiser l'accordion JQuery qu'on va utiliser plus tard
- $('#shortcuts').accordion({collapsible: true, active: 3, clearStyle: true });
- $('#shortcuts').accordion( "option", "icons", { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' });
- //Initialiser la boîte de dialogue JQuery
- $(document).ready(function() {
- $("#dialog" ).dialog({ autoOpen: false, hide: "fade", title: 'Résultat de la requête ...', buttons: [
- {
- text: "Ok",
- click: function() { $(this).dialog("close" ); }
- }
- ] });
- });
- // La requête Ajax qu'on va utiliser pour l'envoie de l'email
- $('#emailContact').submit(function() {
- $.ajax({
- type: "POST",
- url: "contact.php",
- data: $(this).serialize(),
- success: function(data){
- $("#dialog" ).dialog("open" );
- $("#dialog p" ).html(data);
- $("input:text, textarea" ).val('');
- }
- });
- });
- });
- </script>
- </head>
- <body>
- <!-- Div #content -->
- <div id="content">
- <h2> Formulaire de Contact </h2>
- <!-- 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 ! -->
- <div id="contactForm">
- <form action="#" onsubmit="return false;" id="emailContact" class="contact" method="post">
- <div class="field">
- <label for="name">Nom</label>
- <input type="text" name="name" id="name" value="" class="text" />
- </div>
- <div class="field">
- <label for="email">Adresse e-mail</label>
- <input type="text" name="email" id="email" value="" class="text" />
- </div>
- <div class="field">
- <label for="message">Message</label>
- <textarea class="textbox" name="message" id="message" rows="10" cols="25"></textarea>
- </div>
- <div class="buttons">
- <input type="submit" value="Envoyer" class="submit" />
- <input type="reset" value="Effacer" class="submit reset" />
- </div>
- </form>
- <!-- end #contactForm -->
- <!-- La boîte de dialogue invisible au début -->
- <div id="dialog"><p></p></div>
- </div>
- <!-- end #contact -->
- </div>
- <!-- end #contact -->
- </div>
- <!-- End #content -->
- </body>
- </html>
|
et
contact.php
Code :
- <?php
- /** La fonction d'envoie de mail. Elle prend en paramétre, le sujet, le mail, le texte et le nom de l'utilisateur
- 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 **/
- function contact($sujet, $mail, $texte, $nomUtilisateur)
- {
- if($mail == NULL OR !preg_match("#^[a-z0-9._-]+@[a-z]+.[a-z]{2,4}$#", $mail)){
- $error = "<center> Attention ! <br/> Veuillez entrer une adresse e-mail valide.<br/>ex: monnom@exemple.fr</center>";
- return $error;}
- if($nomUtilisateur == NULL){
- $error = "<center> Attention ! <br/> Vous devez entrer un nom.</center>";
- return $error;}
- if($texte == NULL OR strlen($texte) < 10){
- $error = "<center> Attention ! <br/> Votre message doit contenir au moins dix caractères.</center>";
- return $error;}
- if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // O,n filtre les serveurs qui bugs
- {
- $passage_ligne = "rn";
- }
- else
- {
- $passage_ligne = "n";
- }
- //=====Déclaration des messages au format texte
- $message_txt = $texte;
- $message_html = $texte;
- //==========
- //=====Création de la boundary
- $boundary = "-----=".md5(rand());
- //==========
- //=====Définition du sujet
- $sujet = (htmlspecialchars($sujet));
- //=========
- //=====Création du header de l'e-mail
- $header = "From: "".$nomUtilisateur.""<".$mail.">".$passage_ligne;
- $header.= "Reply-to: "".$nomUtilisateur.""<"".$mail."">".$passage_ligne;
- $header.= "MIME-Version: 1.0".$passage_ligne;
- $header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary="".$boundary.""".$passage_ligne;
- //==========
- //=====Création du message
- $message = $passage_ligne.$boundary.$passage_ligne;
- //=====Ajout du message au format texte
- $message.= "Content-Type: text/plain; charset="UTF-8"".$passage_ligne;
- $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
- $message.= $passage_ligne.$message_txt.$passage_ligne;
- //==========
- $message.= $passage_ligne."--".$boundary.$passage_ligne;
- //=====Ajout du message au format HTML
- $message.= "Content-Type: text/html; charset="UTF-8"".$passage_ligne;
- $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
- $message.= $passage_ligne.$message_html.$passage_ligne;
- //==========
- $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
- //==========
- //=====Ajout du message au format HTML
- $message.= "Content-Type: text/html; charset="UTF-8"".$passage_ligne;
- $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
- $message.= $passage_ligne.$message_html.$passage_ligne;
- $contact = 'myname@exemple.fr'; // Vous changez selon votre mail
- //=====Envoi de l'e-mail
- if(mail($contact,$sujet,$message,$header))
- return $error="";
- else
- return $error="Une erreur est intervenue lors de l'envoi de votre message !";
- //==========
- }
- /* 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 */
- if(isset($_POST['name']))
- {
- $result = contact("Site Perso - Formulaire de contact", $_POST['email'], $_POST['message'], $_POST['name']);
- if($result != "" )
- echo "<p><center><strong>Votre message n'a pas pu être envoyé, il contient des erreurs : </strong></center><br/>
- <strong><u><i>".$result."</i></u></strong></p>";
- else
- echo "<center><strong>Votre message a été envoyé avec succès !</strong></center>";
- }
- ?>
|
Si quelqu'un peut me dire quoi rajouter se serais super cool.
Très cordialement,
Viper07 |