Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
904 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Quelques question sur mon script contact.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quelques question sur mon script contact.

n°1846034
Lekouti
Posté le 02-02-2009 à 12:45:47  profilanswer
 

Bonjour à tous,
 
J'ai installé sur mon site le script tout fait d'un Formulaire de contact nommé I-Contact.
 
Rapide d'installation et nécessite quand même quelques retouches  [cligne].
 
Voici le code dans son ensemble (tout est sur la même pas):
 

Code :
  1. <?php
  2. if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
  3.     $etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
  4.     // On récupère les champs du formulaire, et on arrange leur mise en forme
  5.     if (isset($_POST["son_nom"])) $_POST["son_nom"]=trim(stripslashes($_POST["son_nom"])); // trim()  enlève les espaces en début et fin de chaine
  6.     if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes()  retire les backslashes ==> \' devient '
  7.     if (isset($_POST["son_url"])) $_POST["son_url"]=trim(stripslashes($_POST["son_url"]));
  8.     if (isset($_POST["son_objet"])) $_POST["son_objet"]=trim(stripslashes($_POST["son_objet"]));
  9.     if (isset($_POST["son_message"])) $_POST["son_message"]=trim(stripslashes($_POST["son_message"]));
  10.     // Après la mise en forme, on vérifie la validité des champs
  11.     if (empty($_POST["son_nom"])) { // L'utilisateur n'a pas rempli le champ pseudo
  12.         $erreur="Vous n'avez pas entr&eacute; votre nom..."; // On met dans erreur le message qui sera affiché
  13.         }
  14.         elseif (empty($_POST["son_email"])) { // L'utilisateur n'a pas rempli le champ email
  15.             $erreur="Nous avons besoin de votre e-mail pour vous r&eacute;pondre...";
  16.         }
  17.         elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email"])){ // On vérifie si l'email est bien de la forme messagerie@domaine.tld (cf cours d'expressions régulières)
  18.             $erreur="Votre adresse e-mail n'est pas valide...";
  19.         }
  20.         elseif (empty($_POST["son_objet"])) { // L'utilisateur n'a pas rempli le champ objet
  21.             $erreur="Vous devez entrer l'objet de votre message...";
  22.         }
  23.         elseif (empty($_POST["son_message"])) { // L'utilsateur n'a écrit aucun message
  24.             $erreur="Merci de saisir un message...";
  25.         }
  26.         else { // Si tous les champs sont valides, on change l'état à ok
  27.             $etat="ok";
  28.         }
  29. }
  30. else { // Sinon le formulaire n'a pas été soumis
  31.     $etat="attente"; // On passe donc dans l'état attente
  32. }
  33. if ($etat!="ok" ){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
  34.     if ($etat=="erreur" ){ // Cas où le formulaire a été soumis mais il y a des erreurs
  35.         echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
  36.     }
  37. ?>
  38. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  39. <html xmlns="http://www.w3.org/1999/xhtml">
  40. <head>
  41. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  42. <title>I Contact</title>
  43. <style type="text/css">
  44. body
  45. {
  46.     margin-left: 285px;
  47.     width: 450px;
  48. font-family: "Trebuchet MS", Arial, "Arial Black", "Times New Roman", Times, serif;
  49.     font-size: 0.8em;
  50. margin-top: 20px;
  51. margin-bottom: 20px;
  52. }
  53. label
  54. {
  55.  
  56.    width: 270px;
  57.    font-family: "Trebuchet MS", Arial, "Arial Black", "Times New Roman", Times, serif;
  58.    font-size: 1em;
  59.    color: #2C485C;
  60.    background-color: white;
  61. }
  62. textarea, input
  63. {
  64.    font-family: Vardana, "Trebuchet MS", Arial, "Arial Black", "Times New Roman", Times, serif;
  65.    font-size: 1em;
  66.    color: black;
  67.    background-color: #EFEFEF;
  68. }
  69. img
  70. {
  71.    Border: none;
  72. }
  73. h3
  74. {
  75.    font-family: "Trebuchet MS", "Arial Black", "Times New Roman", Times, serif;
  76.    text-align: center;
  77.    color: #fff;
  78.    background-color: #5183A8;
  79.    width: 390px;
  80. }
  81. .attention
  82. {
  83.    font-size: 1em;
  84.    color: red;
  85.    background-color: #fff;
  86. }
  87. </style>
  88. </head>
  89. <body>
  90. <h3>Testez le formulaire il est désactivé !</h3>
  91. <!-- Formulaire HTML qu'on affiche dans l'état attente ou erreur -->
  92. <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <!-- Les données du formulaire seront récupérée avec la méthode POST, et action correspond à la page contenant le formulaire -->
  93.     <p style="text-align:left">
  94.         <label for="son_nom">Nom <span class="attention">*</span></label><br /> <!-- Intitulé du champ pseudo -->
  95.         <input type="text" size="40" name="son_nom" id="son_nom" value="<?php
  96.         if (!empty($_POST["son_nom"])) {
  97.         // le pseudo de l'expéditeur a été saisi --> le réafficher
  98.         echo htmlspecialchars($_POST["son_nom"],ENT_QUOTES); // htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &amp;
  99.         }
  100.         ?>" />
  101.         <br />
  102.         <label for="son_email">E-mail <span class="attention">*</span></label><br /> <!-- Intitulé du champ e-mail -->
  103.         <input type="text" size="40" name="son_email" id="son_email" value="<?php
  104.         if (!empty($_POST["son_email"])) {
  105.         // l'e-mail de l'expéditeur a été saisi --> le réafficher
  106.         echo htmlspecialchars($_POST["son_email"],ENT_QUOTES);
  107.         }
  108.         ?>" />
  109.         <br />
  110.         <label for="son_url">URL de votre site</label><br /> <!-- Intitulé du champ url (facultatif) -->
  111.         <input type="text" size="40" name="son_url" id="son_url" value="<?php
  112.         if (!empty($_POST["son_url"])) {
  113.         // l'url a été saisi --> la réafficher
  114.         echo htmlspecialchars($_POST["son_url"],ENT_QUOTES);
  115.         }
  116.         ?>" />
  117.         <br />
  118.         <label for="son_objet">Objet <span class="attention">*</span></label><br /> <!-- Intitulé du champ objet -->
  119.         <input type="text" size="40" name="son_objet" id="son_objet" value="<?php
  120.         if (!empty($_POST["son_objet"])) {
  121.         // l'objet du message a été saisi --> le réafficher
  122.         echo htmlspecialchars($_POST["son_objet"],ENT_QUOTES);
  123.         }
  124.         ?>" />
  125.         <br />
  126.         <label for="son_message">Message <span class="attention">*</span></label><br /> <!-- Intitulé du champ message -->
  127.         <textarea name="son_message" id="son_message" cols="60" rows="10"><?php
  128.         if (isset($_POST["son_message"])) {
  129.         // le message a été saisi --> le réafficher
  130.         echo htmlspecialchars($_POST["son_message"],ENT_QUOTES);
  131.         }
  132.         ?>
  133. </textarea>
  134.         <br /><br />
  135.         <input type="submit" name="envoyer" value="Envoyer" />&nbsp;&nbsp;&nbsp;<input type="reset" name="reset" value="Effacer" />
  136.     </p>
  137. </form>
  138. <!-- FIN du formulaire HTML -->
  139. <?php
  140. }
  141. else { // Sinon l'état est ok donc on envoie le mail
  142.     $son_nom = $_POST["son_nom"]; // On stocke les variables récupérées du formulaire
  143.     $son_email = $_POST["son_email"];
  144.     $son_url = $_POST["son_url"];
  145.     $son_objet = $_POST["son_objet"];
  146.     $son_message = $_POST["son_message"];
  147.     $mon_email = "votreadresse@email.com"; // Mise en forme du message que vous recevrez (Votre adresse email)
  148.     $mon_nom = "Patrick HAMY"; // (Votre pseudo ou votre nom)
  149.     $mon_url = "http://www.patrickhamy.net"; // (Votre site)
  150.     $msg_pour_moi = "- Son nom : $son_nom \n
  151.     - Son E-mail : $son_email \n
  152.     - Son site : $son_url \n
  153.     - Objet du message : $son_objet \n
  154.     - Message : \n $son_message \n\n";
  155.     // Mise en forme de l'accusé réception qu'il recevra
  156.     $accuse_pour_lui = "Bonjour $son_nom,\n
  157.     Votre message nous a bien été envoyé et nous tâcherons de vous répondre le plus rapidement possible.\n\n
  158.     - Votre E-mail : $son_email \n
  159.     - Votre site : $son_url \n
  160.     - L'objet de votre message : $son_objet \n
  161.     - Votre message : \n $son_message \n\n
  162.     Merci et à bientôt sur http://www.patrickhamy.net !"; // (Votre site)
  163.     // Envoie du mail
  164.     $entete = "From: " . $mon_nom . " <" . $mon_email . ">\n"; // On prépare l'entête du message
  165.     $entete .= "MIME-Version: 1.0";
  166.     if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
  167.         echo "<p style=\"text-align:center\">Votre message a &eacute;t&eacute; envoy&eacute;, vous recevrez une confirmation par mail.<br /><br />\n"; // On affiche un message de confirmation
  168.         echo "<a href=\"" . $mon_url . "\">Retour</a></p>\n"; // Avec un lien de retour vers l'accueil du site
  169.     }
  170.     else { // Sinon il y a eu une erreur lors de l'envoi
  171.         echo "<p style=\"text-align:center; color:green\">Un problème s'est produit lors de l'envoi du message.\n";
  172.         echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a></p>\n"; // On propose un lien de retour vers le formulaire
  173.     } 
  174. }
  175. ?>
  176. </body>
  177. </html>


 
Je commence, en Haut du code il y a la fonction pour verifier que tout les champs soit bien remplis à l'envoi du mail.  
Si erreur il affiche la phrases du code en haut de la page, en rouge et police basique.
 
Est il possible de mettre en page ce message d'erreur ? voir meme la remplacer par une image et pourquoi pas la mettre a la suite du champs non validé ?
 
Autre point délicat  [smile]  
 
 

Code :
  1. // Envoie du mail
  2.     $entete = "From: " . $mon_nom . " <" . $mon_email . ">\n"; // On prépare l'entête du message
  3.     $entete .= "MIME-Version: 1.0";
  4.     if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
  5.         echo "<p style=\"text-align:center\">Votre message a &eacute;t&eacute; envoy&eacute;, vous recevrez une confirmation par mail.<br /><br />\n"; // On affiche un message de confirmation
  6.         echo "<a href=\"" . $mon_url . "\">Retour</a></p>\n"; // Avec un lien de retour vers l'accueil du site
  7.     }


 
J'aimerai sur cette partie renvoyer le visiteur vers une page personnalisé et non un page toute faite.
Mais je ne vois pas comment rentrer une url dans ce code.
 
 
Sinon y a t'il un avantage d'avoir 2fichier différant pour un formulaire ? Celui- ci tiens sur la même page mais bcp on d'un coté la mise en place dans le fichier html et de l'autre un fichier propre pour les donner du formulaire. Plus de sécurité ?
 
Et pour finir, justement sur la sécurité, ce formulaire n'est pour le moment pas du tout sécurisé.
Je connais le système Captcha mais franchement pas esthétique.
 
Je crois savoir qu'il existe quelques technique pour limiter les spam sans forcement que ça soit visible, contrôle du header temps mini pour remplir le formulaire ...
 
Avez vous des infos ou des conseils ??
 
 
 
Merci a tous  [biggrin]

mood
Publicité
Posté le 02-02-2009 à 12:45:47  profilanswer
 

n°1846069
omega2
Posté le 02-02-2009 à 14:55:45  profilanswer
 

Je résume : t'as récupéré un script sur internet et tu voudrais qu'on le modifie à ta place.
 
Désolé, mais ça ne rentre pas dans les règles de ce forum.

n°1846077
Lekouti
Posté le 02-02-2009 à 15:15:16  profilanswer
 

Merci de plombé mon post....

 

Je demande pas forcement que vous le modifiez à ma place, simplement un peu d'aide, des conseils voir 1 lien ou 2 si vous en avez sous le coude.

 

Me semble que c'est la base même  des forums autre que "Parlons de la pluie et du beau temps".

 

M'enfin chaque forum a sont redresseur de tort.....malheureusement !!

 

Mes questions restes ouverte pour ceux qui ne voient pas d'abus dans
ces quelques lignes.

 

Merci


Message édité par Lekouti le 02-02-2009 à 15:17:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Quelques question sur mon script contact.

 

Sujets relatifs
Script Upload Ajax + miniatureSuivre le déroulement d'un script
question basique sur le modèle objetscript formulaire + newsletter
A quoi sert ce script?[RESOLU] [VBS] Probleme script vbs
[JS] Question basique de fonctions...petit script pour eteindre un serveur du reseau
Question débutant sur errorlevelPetite question à propos de Flash
Plus de sujets relatifs à : Quelques question sur mon script contact.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR