Soyez le premier à donner votre avis sur cette source.
Snippet vu 36 585 fois - Téléchargée 17 fois
<?php if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis $etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur // On récupère les champs du formulaire, et on arrange leur mise en forme if (isset($_POST["titre"])) $_POST["titre"]=trim(stripslashes($_POST["titre"])); if (isset($_POST["nom"])) $_POST["nom"]=trim(stripslashes($_POST["nom"])); if (isset($_POST["prenom"])) $_POST["prenom"]=trim(stripslashes($_POST["prenom"])); if (isset($_POST["email"])) $_POST["email"]=trim(stripslashes($_POST["email"])); if (isset($_POST["url"])) $_POST["url"]=trim(stripslashes($_POST["url"])); if (isset($_POST["pays"])) $_POST["pays"]=trim(stripslashes($_POST["pays"])); if (isset($_POST["adresse"])) $_POST["adresse"]=trim(stripslashes($_POST["adresse"])); if (isset($_POST["code_postal"])) $_POST["code_postal"]=trim(stripslashes($_POST["code_postal"])); if (isset($_POST["ville"])) $_POST["ville"]=trim(stripslashes($_POST["ville"])); if (isset($_POST["telephone"])) $_POST["telephone"]=trim(stripslashes($_POST["telephone"])); if (isset($_POST["objet"])) $_POST["objet"]=trim(stripslashes($_POST["objet"])); if (isset($_POST["priorite"])) $_POST["priorite"]=trim(stripslashes($_POST["priorite"])); if (isset($_POST["message"])) $_POST["message"]=trim(stripslashes($_POST["message"])); // Après la mise en forme, on vérifie la validité des champs if (empty($_POST["nom"])) { // L'utilisateur n'a pas rempli le champ pseudo $erreur="Vous n'avez pas entré votre nom..."; // On met dans erreur le message qui sera affiché } elseif (empty($_POST["email"])) { // L'utilisateur n'a pas rempli le champ email $erreur="Nous avons besoin de votre e-mail pour vous répondre..."; } elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email"])){ // On vérifie si l'email est bien de la forme messagerie@domaine.tld (cf cours d'expressions régulières) $erreur="Votre adresse e-mail n'est pas valide..."; } elseif (empty($_POST["objet"])) { // L'utilisateur n'a pas rempli le champ objet $erreur="Vous devez entrer l'objet de votre message..."; } elseif (empty($_POST["message"])) { // L'utilsateur n'a écrit aucun message $erreur="Merci de saisir un message..."; } else { // Si tous les champs sont valides, on change l'état à ok $etat="ok"; } } else { // Sinon le formulaire n'a pas été soumis $etat="attente"; // On passe donc dans l'état attente } if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente) if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur } ?> <div class="contactform"> <form method="post"> <fieldset><legend> Vos détails </legend> <p><label for="contact_title" class="left">Votre titre :</label> <select name="titre" id="contact_title" class="combo"> <option value="M." selected="selected">M.</option> <option value="Mme">Mme</option> <option value="Mlle">Mlle</option></select></p> <p><label for="contact_firstname" class="left">Nom* :</label> <input type="text" name="nom" id="contact_firstname" class="field" value="<?php if (!empty($_POST["nom"])) { echo htmlspecialchars($_POST["nom"],ENT_QUOTES); } ?>" /></p> <p><label for="contact_familyname" class="left">Prénom :</label> <input type="text" name="prenom" id="contact_familyname" class="field" value="<?php if (!empty($_POST["prenom"])) { echo htmlspecialchars($_POST["prenom"],ENT_QUOTES); } ?>" /></p> <p><label for="contact_street" class="left">Adresse :</label> <input type="text" name="adresse" id="contact_street" class="field" value="<?php if (!empty($_POST["adresse"])) { echo htmlspecialchars($_POST["adresse"],ENT_QUOTES); } ?>" /></p> <p><label for="contact_postalcode" class="left">Code postal :</label> <input type="text" name="code_postal" id="contact_postalcode" class="field" value="<?php if (!empty($_POST["code_postal"])) { echo htmlspecialchars($_POST["code_postal"],ENT_QUOTES); } ?>" /></p> <p><label for="contact_city" class="left">Ville :</label> <input type="text" name="ville" id="contact_city" class="field" value="<?php if (!empty($_POST["ville"])) { echo htmlspecialchars($_POST["ville"],ENT_QUOTES); } ?>" /></p> <p><label for="contact_country" class="left">Pays:</label> <select name="pays" id="contact_country" class="combo"> <option value="N/A">Sélection...</option> <option value="France">France</option> <option value="Canada">Canada</option> <option value="Etats-Unis">États-Unis</option> </select></p> <p><label for="contact_phone" class="left">Téléphone :</label> <input type="text" name="telephone" id="contact_phone" class="field" value="<?php if (!empty($_POST["telephone"])) { echo htmlspecialchars($_POST["telephone"],ENT_QUOTES); } ?>" /></p> <p><label for="contact_email" class="left">E-mail* :</label> <input type="text" name="email" id="contact_email" class="field" value="<?php if (!empty($_POST["email"])) { echo htmlspecialchars($_POST["email"],ENT_QUOTES); } ?>" /></p> <p><label for="contact_url" class="left">Site Web :</label> <input type="text" name="url" id="contact_url" class="field" value="<?php if (!empty($_POST["url"])) { echo htmlspecialchars($_POST["url"],ENT_QUOTES); } ?>" /></p> </fieldset> <fieldset><legend> Détails du message </legend> <p><label for="contact_subject" class="left">Sujet* :</label> <input type="text" name="objet" id="contact_subject" class="field" value="<?php if (!empty($_POST["objet"])) { echo htmlspecialchars($_POST["objet"],ENT_QUOTES); } ?>" /></p> <p><label for="contact_urgency" class="left">Priorité :</label> <select name="priorite" id="contact_urgency" class="combo"> <option value="Très basse">Très basse</option> <option value="Basse">Basse</option> <option value="Normale" selected="selected">Normale</option> <option value="Haute">Haute</option> <option value="Très Haute">Très haute</option></select></p> <p><label for="contact_message" class="left">Message* :</label> <textarea name="message" id="contact_message" cols="45" rows="10"><?php if (!empty($_POST["message"])) { echo htmlspecialchars($_POST["message"],ENT_QUOTES); } ?></textarea></p> <p>Formulaire fourni par viki53 (http://viki53.free.fr/)</p> <p><input type="submit" name="envoyer" class="button" value="Envoyer" /></p> </fieldset> </form> </div> <?php } else { // Sinon l'état est ok donc on envoie le mail $titre = $_POST["titre"]; $nom = $_POST["nom"]; // On stocke les variables récupérées du formulaire $email = $_POST["email"]; $url = $_POST["url"]; $objet = $_POST["objet"]; $message = $_POST["message"]; $adresse = $_POST["adresse"]; $code_postal = $_POST["code_postal"]; $ville = $_POST["ville"]; $pays = $_POST["pays"]; $telephone = $_POST["telephone"]; $priorite = $_POST["priorite"]; // ================= Les 3 lignes suivantes sont à modifier ==================================== $mon_email = "user@site.com"; // Mise en forme du message que vous recevrez $mon_pseudo = ".:mwa:."; $mon_url = "http://viki53.free.fr/"; $msg_pour_moi = " Par $titre $nom $prenom - E-mail : $email - URL : $url - Objet du message : $objet - Message : $message - Autres: Adresse: $adresse $code_postal $ville $pays Tel: $telephone"; // Mise en forme de l'accusé réception qu'il recevra $accuse_pour_lui = " Bonjour $titre $nom nous tâcherons de vous répondre le plus rapidement possible.\n\n - Votre E-mail : $email \n - Votre site : $url - L'objet de votre message : $objet - Votre message : $message Merci et à bientôt sur $mon_url ! Formulaire fourni par viki53 (http://viki53.free.fr/)"; // Envoie du mail $entete = "From: " . $mon_mail . "\n Priorité: $priorité\n"; // On prépare l'entête du message $entete .= ""; if (@mail($mon_email,$objet,$msg_pour_moi,$entete) && @mail($email,$objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé echo "<p style=\"text-align:center\">Votre message a été envoyé, vous recevrez une confirmation par mail.<br /><br />\n"; // On affiche un message de confirmation echo "<a href=\"" . $mon_url . "\">Retour</a></p>\n"; // Avec un lien de retour vers l'accueil du site } else { // Sinon il y a eu une erreur lors de l'envoi echo "<p style=\"text-align:center\">Un problème s'est produit lors de l'envoi du message.\n"; echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a></p>\n"; // On propose un lien de retour vers le formulaire } } ?>
ca m'aide beaucoup
Voila, je suis desesperé, je suis en train de créer un site de voyance et je souhaiterais savoir si quelqu'un pourrais m'aider à creer un formulaire de contact qui serai variable afin de l'adapter a chacun des voyants. J'ai déja creer le formulaire en HTML mais apres je ne sais pas c'est quoi fair pour recevoir les informations chez moi, je sais que entendu parler d'un Script CGI mais je n'arrive pas à la programmer, si une personne pourrais m'aider à programmer un formulaire qui fonctionne, je lui en serais très reconnaissant, ce modèle me permettrai d'adapter pour mes autres voyants.
Je vous en remercie d'avance.
je pense que ton code est bien a quelques exceptions pres:
tu pouvais simplifier la plupart des taches via des fontions ou methodes mais la n'est pas l'important.
Tu as en effet charge trop la memoire de variable disant le comme ca redondante:
mettre un post qlq chose dans @var. c la mm chose.
En plus j'aime pas sature mon serveur web ni de donnéee ou quoi que ce soit par des requetes tantot inutil.
J veux dire par la c'est qu'on a pas besoin d'aller envers le serveur web pour verifier la conformite de l'email par exmple: javascript peut le faire. c'est le cas avec des controls sur des champs vides. Ou est passe ces bon codes longs, droles qu'on adorait en javascript. en effet quand nous develloppons pour la maison ca marche mais plus le serveur est attaque faudrait peut etre reflechir a moins surcharge les serveurs, c'est pas une verite absolue mais juste ce que je pense
1- Petite correction dans la ligne $entete "From: ". $mon_mail ."\n il faudra la remplcer par $entete "From: ". $mon_email ."\n
Cela permet d'avoir l'entete exacte du message ;)
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.