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 130 131 132
| <?php
// Initalisation
$validContact = 0;
$MsgErrContact = '';
$defaut_nom = 'Nom';
$defaut_mail = 'Votre adresse mail';
$defaut_objet = 'Objet';
$defaut_texte = 'Texte';
$nom = $defaut_nom;
$mail = $defaut_mail;
$objet = $defaut_objet;
$texte = $defaut_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'])!=$defaut_nom)? trim(stripslashes($_POST['nom'])) : $defaut_nom;
$mail = (isset($_POST['mail']) && trim($_POST['mail'])!=$defaut_mail)? trim(stripslashes($_POST['mail'])) : $defaut_mail;
$objet = (isset($_POST['objet']) && trim($_POST['nom'])!=$defaut_objet)? trim(stripslashes($_POST['objet'])) : $defaut_objet;
$texte = (isset($_POST['texte']) && trim($_POST['nom'])!=$defaut_texte)? strip_tags(trim(stripslashes($_POST['texte']))) : $defaut_texte; // textarea + protection anti-xss
// ----------------------------------------------------
// Gestion des erreurs
// ----------------------------------------------------
// champs obligatoires
$champ_obligatoire = array();
// Message
if ($nom=='' || $nom==$defaut_nom) { $validContact = 2; $champ_obligatoire[] = 'Votre Nom'; }
if ($mail=='' || $mail==$defaut_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('mysql51-26.pro','sniazllbbd2','XXXXXX')){
$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('sniazllbbd2');
$requete = "INSERT INTO formulaire SET nom='$bd_nom',objet='$bd_objet',texte='$bd_texte', mail='$bd_mail'" ;
$resultat = mysql_query($requete);
// -------------
// 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>Formulaire contact</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 id="idnom" name="nom" type="text" size="30" value="<?php echo $nom; ?>" onfocus="if(this.value=='<?php echo $defaut_nom; ?>'){ this.value=''; }" onblur="if(this.value==''){ this.value='<?php echo $defaut_nom; ?>'; }">
</p>
<p>
<label for="idmail">Votre adresse mail : </label>
<input id="idmail" name="mail" type="text" size="30" value="<?php echo $mail; ?>" onfocus="if(this.value=='<?php echo $defaut_mail; ?>'){ this.value=''; }" onblur="if(this.value==''){ this.value='<?php echo $defaut_mail; ?>'; }">
</p>
<p>
<label for="idobjet">Objet : </label>
<input id="idobjet" name="objet" type="text" size="50" value="<?php echo $objet; ?>" onfocus="if(this.value=='<?php echo $defaut_objet; ?>'){ this.value=''; }" onblur="if(this.value==''){ this.value='<?php echo $defaut_objet; ?>'; }">
</p>
<p>
<label for="idtexte">Texte : </label>
<textarea id="idtexte" name="texte" cols="40" rows="3" onfocus="if(this.value=='<?php echo $defaut_texte; ?>'){ this.value=''; }" onblur="if(this.value==''){ this.value='<?php echo $defaut_texte; ?>'; }"><?php echo $texte; ?></textarea>
</p>
<p>
<label> </label>
<input type="submit" value="Envoyer" name="B1">
</p>
</form>
<?php } // fin formulaire ?>
</body>
</html> |
Partager