Problème Formulaire

Petit nouveau ! | 2 Messages

12 déc. 2011, 14:22

Bonjour,
Je bosse actuellement sur un formulaire de contact mail, mais j'ai un souci au niveau de la synthèse des données à compiler (synthèse en html)...
Je crois qu'il doit y avoir juste 2 fois rien à changer... Si quelqu'un pouvez me rendre ce service je lui en serai grandement reconnaissant...
Ci dessous le code de la page en question (qui est un insert au passage)
Merci,

Code : Tout sélectionner

<?php if(!empty($_POST)){ extract($_POST); $valid = true; if(empty($prenom)){ $valid=false; $erreurprenom="Vous n'avez pas rempli votre prénom"; } if(empty($nom)){ $valid=false; $erreurnom="Vous n'avez pas rempli votre nom"; } if(empty($societe)){ $valid=false; $erreursociete="Vous n'avez pas rempli votre société"; } if(empty($tel)){ $valid=false; $erreurtel="Vous n'avez pas rempli votre numéro de téléphone"; } if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){ echo "Votre email n'est pas valide"; } if(empty($email)){ $valid=false; $erreuremail="Vous n'avez pas rempli votre e-mail"; } if(empty($demande)){ $valid=false; $erreurdemande="Vous n'avez pas rempli votre demande"; } if($valid){ $to ="[email protected]"; $sujet = $nom. " vous a contacté via le site client.fr"; $message ='<html><p>Civilité : $civilite<br> Nom : $nom<br> Prénom : $prenom<br> Société : $societe<br> Fonction : $fonction<br> Téléphone : $tel<br> Email : $email</p> <p>Demande :<br> $demande"</p></html>'; $header = "From: $nom <$email> \n"; $header .= 'MIME-Version: 1.0' . "\n"; $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; $demande = stripslashes($demande); $nom = stripslashes($nom); $prenom = stripslashes($prenom); if (mail($to,$sujet,$message,$header)){ $erreur = "Votre message nous ai bien parvenu"; unset($prenom); unset($nom); unset($societe); unset($tel); unset($email); unset($demande); } else{ $erreur = " Une erreur est survenue et votre mail n'est pas partie "; } } } ?> <h8>Vos informations</h8> <?php if(isset($erreur)){ echo "<p>$erreur</p>"; } ?> <form id="account-creation_form" class="std" method="post" action="#"> <fieldset class="account_creation"> <p class="radio required"> <span>Civilité<sup>*</sup></span> <input id="civilite1" type="radio" value="Mr" name="civilite"> <label class="top" for="civilite1">Mr</label> <input id="civilite2" type="radio" value="Mme" name="civilite"> <label class="top" for="civilite2">Mme</label> </p> <span class="error-message"><?php if(isset($erreurprenom)) echo $erreurprenom; ?></span> <p class="required text"> <label for="prenom">Prénom<sup>*</sup></label> <input id="prenom" class="text" type="text" value="" name="prenom"> </p> <span class="error-message"><?php if(isset($erreurnom)) echo $erreurnom; ?></span> <p class="required text"> <label for="nom">Nom<sup>*</sup></label> <input id="nom" class="text" type="text" value="" name="nom"> </p> <span class="error-message"><?php if(isset($erreursociete)) echo $erreursociete; ?></span> <p class="required text"> <label for="societe">Société<sup>*</sup></label> <input id="societe" class="text" type="text" value="" name="societe"> </p> <p class="required text"> <label for="fonction">Fonction<sup>*</sup></label> <select id="id_post" name="fonction"> <option value="">-</option> <option value="PDG,DG">PDG,DG</option> <option value="DRH">DRH</option> <option value="Commerce-Marketing">Commerce-Marketing</option> <option value="Autres">Autres</option> </select> </p> <span class="error-message"><?php if(isset($erreurtel)) echo $erreurtel; ?></span> <p class="required text"> <label for="tel">Tél.<sup>*</sup></label> <input id="tel" class="text" type="text" value="" name="tel"> </p> <span class="error-message"><?php if(isset($erreuremail)) echo $erreuremail; ?></span> <p class="required text"> <label for="email">E-mail<sup>*</sup></label> <input id="email" class="text" type="text" value="" name="email"> </p> <span class="error-message"><?php if(isset($erreurdemande)) echo $erreurdemande; ?></span> <p><textarea name="demande" cols="88" rows="10" id="demande" onfocus="this.value=''">Votre demande ici</textarea></p> <p><input type="submit" class="bouton" value="Envoyer le message" name="submit"></p> </fieldset> </form>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 déc. 2011, 22:54

Ta variable $message contient une chaine déclarée entre apostrophes... du coup il te faut sortir les variables des chaines pour qu'elles soient interprétées :) (ou mettre la chaine entre guillemets, vu que dans ce cas les variables qu'elle contient sont interprétées)

Ps : "Votre message nous est bien parvenu" ça pique fort les yeux sinon ;) (à noter qu'il est plutôt original d'avoir un message de succès dans une variable qui s'appel erreur ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 2 Messages

14 déc. 2011, 10:47

Merci Ryle,

Oui effectivement elle est pas mal celle-là...
Donc au final, si j'ai bien compris, mon code va donner pour cette partie :
$message ="<html><p>Civilité : $civilite<br>
                 Nom : $nom<br>
                 Prénom : $prenom<br>
                 Société : $societe<br>
                 Fonction : $fonction<br>
                 Téléphone : $tel<br>
                 Email : $email</p>
                 <p>Demande :<br> $demande"</p></html>";

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 déc. 2011, 23:11

Ouaip.. à une petite erreur près, tu as une guillemet en trop qui traîne après ton $demande, et qui ferme la chaîne trop tôt... :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 52 Messages

15 déc. 2011, 13:39

Salut,

Tu devrais vérifier les champs en Javascript d'abord, ça sera plus léger et ça évite de charger des pages pour rien.
Ensuite, une vérification en php côté serveur, mais pour la sécurité.

Pense à écrire &eacute au lieu de é, idem pour les autres lettres accentuées ou caractères spéciaux.
Utilise Elseif aussi. Voilà, si ça peut t'aider.