begin process at 2012 05 29 08:34:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Formulaire mail


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Formulaire mail

lundi 21 février 2011 à 22:49:15 | Formulaire mail

ceetro


Bonjour,

je savais pas trop où poster mon message, dans la section php ou la section javascript...

je m'explique :

J'ai un site internet qui affiche le contenu de mes différentes rubriques par un système coda slider. Système plaisant pour ne pas avoir à recharger tout le temps les pages quand on change de section.
Dans ma rubrique contact, j'ai un formulaire d'envoi mail en javascript lié à un php qui envoie le mail directement sur ma boite.
Le problème est que du coup j'me ramasse plein de spam de bot qui injèctent des champs vides ou des données dans mon formulaire vu que les tests sur les champs sont dans le javascript
(l'intérêt est de pouvoir afficher le message d'erreur pour l'utilisateur avec un alert, on recharge toujours pas la page)

J'aimerais donc pouvoir effectuer des tests sur le php une fois que le javascript a validé les informations requises pour l'envoi mail.




Voici le formulaire HTML :

Code HTML :

<form method="post" action="envoiemail.php" name="contact">
  <table border="0" align="left" cellspacing="5">
    <tr> 
      <td>Nom : <font color="#FF0000">*</font></td>
      <td><input name="nom" type="text" id="nom" size="20" />
        </td>
    </tr>
    <tr> 
      <td>Pr&eacute;nom :</td>
      <td><input name="prenom" id="prenom" type="text" size="20" /></td>
    </tr>
    <tr> 
      <td>Email : <font color="#FF0000">*</font></td>
      <td><input id="mail" name="mail" type="text" size="20" />
        </td>
    </tr>
    <tr> 
      <td>Tel. :</td>
      <td><input name="tel" type="text" id="tel" size="20" maxlength="10" />
       </td>
    </tr>
    <tr> 
      <td>Objet : <font color="#FF0000">*</font></td>
      <td><input name="objet" type="text" id="objet" size="20" /></td>
    </tr>
    <tr> 
      <td>Message : <font color="#FF0000">*</font></td>
      <td><textarea name="commentaire" cols="25" rows="8" id="commentaire">&Eacute;crivez ici votre message</textarea></td>
    </tr>
    <tr> 
      <td></td>
      <td> <div align="left"> 
          <input id="boutonEnvoyer" name="submit" type="button" value="Envoyer "/> <p style="color:#Ff0000">(* Champs nécessaires)</p>
        </div></td>
    </tr>
    
  </table>
</form>





Voici mon morceau de javascript qui gère le html (trouvé sur le net)

Code Javascript :

var nom="";
var prenom="";
var mail="";
var tel="";
var objet="";
var commentaire="";

document.getElementById("boutonEnvoyer").onclick=envoiMail;
function envoiMail(){
		if ((document.getElementById('nom').value=="")||(document.getElementById('mail').value=="")||(document.getElementById('objet').value=="")||(document.getElementById('commentaire').value=="")||(document.getElementById('commentaire').value=="Écrivez ici votre message")){alert("Erreur !\nVous n'avez pas renseigné les champs correctement.")}else{
	xhr=new XMLHttpRequest;
	xhr.open("POST",'../envoiemail.php',true);
	xhr.onreadystatechange=function(){
	if(xhr.readyState==4){		alert("Merci ! \n nous avons bien reçu votre mail. \n Nous tâcherons de vous répondre dans les plus brefs délais.");}	}
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send("nom="+document.getElementById('nom').value+"&prenom="+document.getElementById('prenom').value +"&mail="+document.getElementById('mail').value +"&tel="+document.getElementById('tel').value +"&objet="+document.getElementById('objet').value +"&commentaire="+document.getElementById('commentaire').value);
}	}



Et voici le contenu de envoiemail.php (trouvé également sur le net) :

Code PHP :

<?php

$destinataire= 'adresse@mail.com';
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$mail = $_POST['mail'];
$tel = $_POST['tel'];
$objet = $_POST['objet'];
$commentaire = $_POST['commentaire'];


function decoder($texte){
$texte = utf8_decode($texte);
$texte = str_replace("\r", "\n", $texte);
$texte = str_replace("\'", "'", $texte);
return $texte;
}

$objet = decoder($objet);
$commentaire = decoder($commentaire);
$FormContent="


-
Bonjour,
Vous avez reçu un message de
Nom :$nom\n
Prénom : $prenom\n
Tél : $tel\n
Mail : $mail\n
Il vous contacte pour le motif suivant : $objet\n
Et voici son message :\n
$commentaire\n
".urlencode(utf8_encode($FormContent));

echo $FormContent;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .= "From: adresse@mail.com \r\nReply-to : $mail \nX-Mailer:PHP";
mail($destinataire,$objet, $FormContent,$headers ) ;


?>




Pour mes tests j'ai essayé un truc de ce genre dans envoiemail.php : (le test est pas optimisé, mais c'est pas important)

Code PHP :

if (($nom=="")||($mail=="")||($objet=="")||($commentaire=="")||($commentaire=="Écrivez ici votre message")){}
else{mail($destinataire,$objet, $FormContent,$headers ) ;}




Un peu d'aide serait pas de refus, s'il vous plaît.
merci



LiasS
vendredi 25 février 2011 à 15:10:07 | Re : Formulaire mail

007Julien


La bonne démarche consiste à supprimer (au moins provisoirement) tous les tests en javascript, voués au confort de l'utilisateur, pour mettre au point ceux effectués en PHP, seuls valables en définitive.

Bon courage. Il y a beaucoup d'informations sur la sécurisation des formulaires sur la toile...
vendredi 25 février 2011 à 16:08:25 | Re : Formulaire mail

ceetro


T'as pas vraiment eu envie de m'aider toi hein :)

LiasS


Cette discussion est classée dans : mail, php, document, value, getelementbyid


Répondre à ce message

Sujets en rapport avec ce message

je comprend pas ?! [ par stequer ] voilas je suis nul en javascript pourier vous m'aider voila mon erreurError: document.getElementById("civilite") has no propertiesSource File: http:// Calcul [ par dity ] DiTy AkA B@d Boµ Bonjour, je suis bloqué devant un travail... Je doit faire un calculateur en javascript, une page html & un fichier js pour exécute sauce light pour fichier js [ par tonytruand ] Bonjour, Un tuyau SVP, à partir d'un formulaire, et en fonction des choix exprimés, je rapatrie des informations diverses grâce au : if (document.getE Ptite question sur une function js [ par destiny ] Bonjour tlm :)Voila j'ai fais une ptite function js qui me modifie la VALUE de mon input suivant la valuer d'un checkbox!function MajTexteValider() {  URGENT !! validation formulaire avec php [ par romainst ] Bonjour j'ai un énorme problème que je dois résoudre rapidement c'est pour ça que j'en appelle à votre aide,J'ai créé récemment ce formulaire de vote Firefox et le javascript [ par destiny ] Lo all,Voila ma function qui va modifier la date de 'Fin sejour' suivant le nbr de semaine souhaiter par rapport à la date du debut du sejour 'Debut s extraire plusieurs mots [ par tonytruand ] Bonsoir,J'ai trové de nombreux moteurs de recherches intra page, moi ce que j'aimerais faire c'est pouvoir extraire dans une page plusieurd mot pré dé imbriquer des fonctions [ par tonytruand ] Bonjour;N'ayant jamais été déçu de vos réponses, je me permets d'en poser une nouvelle . J'ai une fonction qui balaie des ARRAY avec i++, le problème DOCUMENT.WRITE [ par tonytruand ] Bonjour à tous!,J'ai besoin de votre aide car je ne comprends pas tout. j'ai fait en javscript un petit support de recherche.Le principe : j'ai une ba Problème cahce avec IE [ par goulouk ] Bonjour,je voudrais savoir comment empécher de mettre une page en cache, ou alors obliger IE à recharger la page sans la prendre dans le cache.Je vous


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales