Bonjour tout le monde !
Je suis en train de refaire notre site pro et découvre le PHP.
J'ai créé un formulaire de renseignements qui nous serait envoyé directement sur notre adresse mail.
Comme je l'ai fait en apprenant de-ci, delà pourriez-vous me dire si j'ai fais des erreurs SVP ?
voici le formulaire en lui-même (demande_de_renseignements.php):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demandes de renseignements</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />
<meta name="description" content="Un spectacle pour l'anniversaire de votre enfant, composé de sketchs, magie, gags et scuptures sur ballons" />
<meta name="keywords" content="spectacle, clowns, anniversaire, enfants, gâteau, magie, gags, sculptures sur ballons, tout public, fête" />
<meta name="robots" content="index, follow" />
<meta name="revisit-after" content="1days" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" title="Design_Recto-Verso" type="text/css" href="Recto-Verso.css" />
</head>
<body>
<?php include("haut+menu.php"); ?>
<!-- fin entête de page -->
<!-- Corps de la page -->
<!-- début du formulaire -->
<h1>Pour avoir des renseignements merci de remplir TOUS les champs : </h1>
<p> </p>
<form method="post" action="send_email.php">
<fieldset>
<legend>Vos coordonnées</legend> <!-- Titre du fieldset -->
<p> </p>
<p><label for="organisation">Oragnisateur : Association, CE, Comité des fêtes, Centres de Loisirs, APE, Particulier, etc ...</label><br /><input type="text" name="organisation" size="50" tabindex="10"/></p>
<p><label for="civilite">Civilité :</label>
<select id="civilite" name="civilite">
<option value="mr" selected="selected">Monsieur</option>
<option value="mme">Madame</option>
<option value="mlle">Mademoiselle</option>
</select></p>
<p><label for="nom">Votre nom</label><br /><input type="text" name="nom" size="40" tabindex="50"/></p>
<p><label for="mail">Adresse mail :</label><br /><input type="text" name="mail" size="40" tabindex="60"/></p>
<p><label for="telHB">Téléphone heures de bureau :</label><br />
<input type="text" name="telHB" size="40" maxlength="15" tabindex="70"/></p>
<p><label for="telHR">Téléphone heures de repas :</label><br />
<input type="text" name="telHR" size="40" maxlength="15" tabindex="80"/></p>
<p><label for="adresse">Numéro et rue :</label><br /><input type="text" name="adresse" size="40" tabindex="90"/></p>
<p><label for="CP">Code postal :</label><br /><input type="text" name="CP" size="40" tabindex="100"/></p>
<p><label for="ville">Ville :</label><br /><input type="text" name="ville" size="40" tabindex="110"/></p>
<p> </p>
</fieldset>
<fieldset>
<legend>Votre projet</legend> <!-- Titre du fieldset -->
<p> </p>
<label for="projet">Projet :</label>
<select id="projet" name="projet">
<option value="Un spectacle de clowns" selected="selected">Un spectacle de clowns</option>
<option value="Une animation commerciale">Une animation commerciale</option>
<option value="Une fête familliale">Une fête familliale</option>
<option value="Autre événement">Autre événement</option>
</select>
<p><label for="precision">Précisions (date, heures, etc ...) :</label><br />
<textarea name="precision" rows="8" cols="50" tabindex="120"></textarea></p>
<label for="lieu">Où à lieu votre fête :</label>
<select id="projet" name="projet">
<option value="en intérieur" selected="selected">en intérieur</option>
<option value="en extérieur">en extérieur</option>
</select>
<p> </p>
</fieldset>
<p><input type="submit" value="Envoyer le forumulaire" tabindex="190"/> <input type="reset" value="Effacer" tabindex="200"/></p>
</form>
<!-- Fin du formulaire -->
<p> </p>
<p> </p>
<!-- Fin corps de la page-->
<?php include("Bas.php"); ?>
</body>
</html>
Voici la page qui récupère et envoie les infos, enfin j'espère ! (send_email.php) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Spectacles fêtes familiales par les clowns Recto-Verso</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" title="Design_Recto-Verso" type="text/css" href="Recto-Verso.css" />
<!--[if lte IE 7]>
<script type="text/javascript" src="menu.js"></script>
<![endif]-->
</head>
<body>
<?php include("haut+menu.php"); ?>
<!-- Début corps de la page-->
<?php
/* Si le formulaire est envoyé traitons-les infos */
if (isset($_POST['submit']))
{
/* Récupération des valeurs des champs du formulaire */
if (get_magic_quotes_gpc())
{
$organisation = stripslashes(trim($_POST['organisation']));
$civilite = stripslashes(trim($_POST['civilite']));
$nom = stripslashes(trim($_POST['nom']));
$mail = stripslashes(trim($_POST['mail']));
$telHB = stripslashes(trim($_POST['telHB']));
$telHR = stripslashes(trim($_POST['telHB']));
$adresse = stripslashes(trim($_POST['adresse']));
$CP = stripslashes(trim($_POST['CP']));
$ville = stripslashes(trim($_POST['ville']));
$precision = stripslashes(trim($_POST['precision']));
$lieu = stripslashes(trim($_POST['lieu']));
}
else
{
$organisation = trim($_POST['organisation']);
$civilite = trim($_POST['civilite']);
$nom = trim($_POST['nom']);
$mail = trim($_POST['mail']);
$telHB = trim($_POST['telHB']);
$telHR = trim($_POST['telHB']);
$adresse = trim($_POST['adresse']);
$CP = trim($_POST['CP']);
$ville = trim($_POST['ville']);
$precision = trim($_POST['precision']);
$lieu = trim($_POST['lieu']);
}
/* Vérifier si le format d'une adresse e-mail est correct */
$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
/* Vérifier qu'aucun en-tête n'est inséré dans nos champs */
$regex_head = '/[\n\r]/';
/* Si le formulaire n'est pas posté de notre site on renvoie vers notre page de formulaire */
if($_SERVER['HTTP_REFERER'] != 'http://www.clowns-rectoverso.com/demande_de_renseignements.php')
{
header('Location: http://www.clowns-rectoverso.com/');
}
/* Vérifier que tous les champs sont remplis */
elseif (empty($organisation)
|| empty($civilite)
|| empty($nom)
|| empty($mail)
|| empty($telHB)
|| empty($telHR)
|| empty($adresse)
|| empty($CP)
|| empty($ville)
|| empty($projet)
|| empty($precision))
{
$alert = 'Tous les champs doivent être renseignés MERCI';
}
/* Vérifier que le format de l'e-mail est correct */
elseif (!preg_match($regex_mail, $expediteur))
{
$alert = 'L\'adresse '.$expediteur.' n\'est pas valide';
}
/* Vérifier qu'il n'y a aucun header dans les champs */
elseif (preg_match($regex_head, $organisation)
|| preg_match($regex_head, $civilite)
|| preg_match($regex_head, $nom)
|| preg_match($regex_head, $mail)
|| preg_match($regex_head, $telHB)
|| preg_match($regex_head, $telHR)
|| preg_match($regex_head, $adresse)
|| preg_match($regex_head, $CP)
|| preg_match($regex_head, $ville)
|| preg_match($regex_head, $projet)
|| preg_match($regex_head, $precision))
{
$alert = 'Les en-têtes sont interdites dans les champs du formulaire';
}
/* Si aucun problème et aucun cookie n'est détecté, construire le message et envoyer l'e-mail */
elseif (!isset($_COOKIE['sent']))
{
/* Destinataire du formulaire - NOUS ! */
$to = 'webmaster@clowns-rectoverso.com';
/* Contenu du message */
$msg = 'Bonjour,'."\r\n\r\n";
$msg .= 'Ce mail a été envoyé depuis clowns-rectoverso.com par '.$civilite.' '.$nom."\r\n\r\n";
$msg .= 'Pour une demande de renseignements :'."\r\n";
$msg .= '***************************'."\r\n";
$msg .= $message."\r\n";
$msg .= '***************************'."\r\n";
/* En-têtes de l'e-mail */
$headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
/* Envoi de l'e-mail */
if (mail($to, $sujet, $msg, $headers))
{
$alert = 'E-mail envoyé avec succès';
/* On créé un cookie de courte durée (120 secondes) pour éviter de
* renvoyer un mail en rafraichissant la page */
setcookie("sent", "1", time() + 120);
/* Détruire la variable $_POST */
unset($_POST);
}
else
{
$alert = 'Erreur d\'envoi de l\'e-mail';
}
}
/* Cas où le cookie est créé et que la page est rafraichie, détruire la variable $_POST */
else
{
unset($_POST);
}
?>
<!-- Fin corps de la page-->
<?php include("Bas.php"); ?>
</body>
</html>
Je ne parviens pas à le tester (j'utilise wamp) , mais je pense que je "merdoie" dans le smtp,l'adresse mail,
et le localhost je dois tout mélanger !
Merci de me dire s'il y a des erreurs et où ?
Autre question dans le formulaire TOUS les champs sont obligatoires, sauf pour le numéro de tel :
|| empty($telHB)
|| empty($telHR)
J'aimerai que se soit l'un ou l'autre, mais au moins un obligatoire et les deux possibles !
est-ce trop demander ? si c'est possible comment faire je n'ai rien trouvé à ce sujet.
MERCI de l'attention que vous porterez à mes problèmes,
à bientôt, Verso 