1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
| <?php
// Initalisation
$validContact = 0;
$MsgErrContact = '';
$nom = 'Nom';
$mail = 'Votre adresse mail';
$objet = 'Objet';
$texte = 'Texte';
// si le formulaire est posté
if (isset($_POST['B1']))
{
// ----------------------------------------------------
// Récupération des valeurs des champs du formulaire
// ----------------------------------------------------
$nom = (isset($_POST['nom']) && trim($_POST['nom'])!='Nom')? trim(stripslashes($_POST['nom'])) : 'Nom';
$mail = (isset($_POST['mail']) && trim($_POST['mail'])!='Votre adresse mail')? trim(stripslashes($_POST['mail'])) : 'Votre adresse mail';
$objet = (isset($_POST['objet']) && trim($_POST['nom'])!='Objet')? trim(stripslashes($_POST['objet'])) : 'Objet';
$texte = (isset($_POST['texte']) && trim($_POST['nom'])!='Texte')? strip_tags(trim(stripslashes($_POST['texte']))) : 'Texte'; // textarea + protection anti-xss
// ----------------------------------------------------
// Gestion des erreurs
// ----------------------------------------------------
// champs obligatoires
$champ_obligatoire = array();
// Message
if ($nom=='' || $nom=='Nom') { $validContact = 2; $champ_obligatoire[] = 'Votre Nom'; }
if ($mail=='' || $mail=='Votre adresse mail') { $validContact = 2; $champ_obligatoire[] = 'Votre adresse mail'; }
if($validContact==2 && count($champ_obligatoire)>0) {
$MsgErrContact .= 'Remplissez les champs obligatoires : '.implode(', ',$champ_obligatoire).'<br />';
}
// -------------
// regex e-mail
$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
// On vérifie que le format de l'e-mail est correct
if ($mail!='' && $mail!='Votre adresse mail' && !preg_match($regex_mail, $mail)) {
$MsgErrContact .= 'Adresse mail invalide (doit être de la forme : xxxx@xx.xx)'.'<br />';
$validContact = 2;
}
// -------------
// essai de connexion à la base de donnees
if(!mysql_connect('mysqlxxxxxxxx.pro','xxxxxxxx','xxxxxxxx')){
$MsgErrContact .= 'Connection à la base de donnees Impossible'.'<br />';
$validContact = 2;
}
// -------------
if ($validContact!=2) {
$validContact = 1;
}
// ----------------------------------------------------
// PAS d'ERREUR : TRAITEMENT
// ----------------------------------------------------
if($validContact == 1) {
// -------------
// 1/ PROTECTION contre injection SQL AVANT insertion en bdd
$bd_nom = mysql_real_escape_string($nom);
$bd_mail = mysql_real_escape_string($mail);
$bd_objet = mysql_real_escape_string($objet);
$bd_texte = mysql_real_escape_string($texte);
// -------------
// 2/ Enregistrement en base de données
mysql_select_db('xxxxxxxx');
$requete = "INSERT INTO formulaire SET nom='$bd_nom',objet='$bd_objet',texte='$bd_texte', mail='$bd_mail'" ;
$resultat = mysql_query($requete) or die('Erreur SQL :<br />'.$requete.'<br />'.mysql_error()); // en phase de test
// à remplacer par : $resultat = mysql_query($requete); // en production
// -------------
// 3/ ENVOI d'un email a l'administrateur
$message = date("d/m/Y H:m:s\n")."\n".
" Nouveau contact :"."\n";
" Nom :".$nom."\n".
" Adresse mail :".$mail."\n".
" Objet :".$objet."\n".
" Texte :".$texte;
$entetes = "From: $mail\nReply-to: $mail\n".
"MIME-Version: 1.0\r\n".
"Content-type: text/plain; charset=utf-8\r\n"; // (format TEXTE)
$sujet = "Contact site S de la part de ".$nom;
$webmaster = 'raphael.1@gmail.com';
mail($webmaster,$sujet,$message,$entetes);
// -------------
} // fin traitement
} // fin si le formulaire est posté
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
<style type="text/css">
label { float:left; width:150px; text-align:right; margin-right:5px; }
</style>
</head>
<body>
<?php // Messages
if($validContact==1) { // message OK ?>
<p>Votre message a bien été envoyé</p>
<?php
} elseif($validContact==2) { // message ERREUR ?>
<p><?php echo $MsgErrContact; ?></p>
<?php } ?>
<?php // Formulaire
if($validContact!=1) { ?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>
<label for="idnom">Nom : </label>
<input name="idnom" name="nom" type="text" size="30" value="<?php echo $nom; ?>">
</p>
<p>
<label for="idmail">Votre adresse mail : </label>
<input name="idmail" name="mail" type="text" size="30" value="<?php echo $mail; ?>">
</p>
<p>
<label for="idobjet">Objet : </label>
<input name="idobjet" name="objet" type="text" size="50" value="<?php echo $objet; ?>">
</p>
<p>
<label for="idtexte">Texte : </label>
<textarea name="idtexte" name="texte" cols="40" rows="3"><?php echo $texte; ?></textarea>
</p>
<p>
<label> </label>
<input type="submit" value="Envoyer" name="B1">
</p>
</form>
<?php } // fin formulaire ?>
</body>
</html> |
Partager