Bonsoir tout le monde,

Je suis un petit nouveau, tout dabord, merci pour ce site, il est parfait pour un petit novice comme moi lol
En ce moment je m'attaque au formulaire, j'ai suivis pas mal de tuto, j'ai encore un peux de mal avec les <select> et les "radios", en effet je ne parviens pas à récupéré leur données dans l'envoi du mail car ceux-ci diffères, des champs de textes standard...

Bref mon véritable problème reside durant l'envoi du formulaire sur mon mail. Lorsque tout les champs sont complétés et que l'on appuie sur la touche "continuer", la partie

$messagesend = "Votre message a bien été envoyé, merci";

ne semble pas fonctionné, et aucun envoi est fait. Hier tout fonctionnais mais j'ai travaillé le code aujourd'hui pour l'amélioré mais j'ai dû faire quelques chose qu'il ne fallait pas, j'ai lus et relus mon code je ne vois pas où sa flanche, vous auriez une idée?

Lien du formulaire: ICI

15 réponses


Tef
Réponse acceptée

En ligne 2 tu as mis 2 empty :

if(!emptyempty($_POST)){

:)

Shakuro
Auteur

J'en profite pour dire qu'un petit futé m'a envoyé un formulaire via mon code, alors cela suffit ! dites moi se qui ne va pas au lieu de me narguer! na :p .

Ps: m'en fiche de toute façon ils étaient dans mes spams ^^

On ne pourra pas t'aider si on ne voit pas ton code PHP

Shakuro
Auteur

Bonjour,

Mille excuses, voici le code :

<?php
if(!empty($_POST)){
    extract($_POST);
    $valid=true;

            if(! preg_match("/^[a-z-àâéèêôùûçÀÂÉÈÔÙÛÇ]{2,}$/i", $nom)){
            $valid=false;       
            $erreurnom="Votre nom n'est pas valide";    
    }
        if(empty($nom)){
        $valid=false;
        $erreurnom="Veuillez saisir votre nom";
    }   

            if(! preg_match("/^[a-z-àâéèêôùûçÀÂÉÈÔÙÛÇ]{2,}$/i", $prenom)){
            $valid=false;       
            $erreurprenom="Votre prenom n'est pas valide";          
    }   
        if(empty($prenom)){
        $valid=false;
        $erreurprenom="Veuillez saisir votre prenom";
    }

            if(! preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i", $email)){
            $erreurmail="L'email que vous avez entrez n'est pas valide";
    }
        if(empty($email)){
        $valid=false;
        $erreurmail="Veuillez saisir votre email";
    }

            if(! preg_match("/^([0-9]+[a-z',;àâéèêôùûçÀÂÉÈÔÙÛÇ\s-]{1,50})$/i", $adresse)){
            $valid=false;
            $erreuradresse="Votre adresse doit être sous la forme: \"N° de rue, nom de rue\". ";
    }   
        if(empty($adresse)){
        $valid=false;
        $erreuradresse="Veuillez saisir votre adresse";
    }

            if(! preg_match("#^[0-9]{5}$#i", $CodePostal)){
            $valid=false;
            $erreurCodePostal="Votre code postal doit être composé 5 chiffres";
    }
        if(empty($CodePostal)){
        $valid=false;
        $erreurCodePostal="Veuillez saisir le n° de votre code postal";
    }
        if(empty($CodePostalville)){
        $valid=false;
        $erreurCodePostalville="Veuillez saisir votre code postal ainsi que votre ville";
    }

            if(! preg_match("#^[a-z-,;àâéèêôùûçÀÂÉÈÔÙÛÇ]{2,}$#", $ville)){
            $valid=false;
            $erreurville="Votre ville n'est pas valide";
    }       
        if(empty($ville)){
        $valid=false;
        $erreurville="Veuillez saisir le nom de votre ville";
    }

            if(! preg_match("#^0[1-68](-. ]?[0-9]{2}){4}$#", $tel)){
            $valid=false;
            $erreurtel="Le numéro de télephone n'est pas valide";
    }
        if(empty($tel)){
        $valid=false;
        $erreurtel="Veuillez saisir votre numéro de télephone";
    }

        if(empty($jour)){
        $valid=false;
        $erreurDateDeNaissance="Veuillez saisir votre date de naissance";
    }

    if($valid){
        $to = "contact@peexstudio.fr";
        $sujet = "a poster une nouvelle commande";
        $header = "From: contact@peexstudio.fr \n";
        $header = "Reply-To: $email";
        $message = "PEEXSTUDIO.FR --------------------------------------------------------COMMANDE

        Bonjour,

        Nouvelle commande postée depuis notre plate-forme :

        NOM : $nom 
        PRENOM : $prenom 
        EMAIL : $email
        ADRESSE : $adresse $CodePostal, $ville.
        TEL : $tel
        DATE DE NAISSANCE: $DateDeNaissance 

        Cordialement,
        Robot-php de Peexstudio";       
        if(mail($to,$sujet,$message,$header)){
            $messagesend = "Votre message a bien été envoyé, merci";
            unset($nom);
            unset($prenom);
            unset($email);
            unset($adresse);
            unset($CodePostal);
            unset($ville);
            unset($tel);
            unset($DateDeNaissance);
    }
        else{
            $erreur = "Une erreur est survenue lors de l'envoi du mail, merci de réessayer dans un court instant" ;
        }
    }

}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
    <title>Peexstudio | A new glance in the graphic work</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
body,td,th { font-family: Arial, Verdana, serif; color: #fff; font-size: x-small; }
input [type=texte]{ color: #fff; border:dotted 1px #633b3f; background: #121212;}
.submit { Background: url(ContinuerRollout.png); width: 94px; height:21px; cursor: pointer; border: none;}
.submit:hover { Background: url(ContinuerRollover.png); width: 94px; height:21px; cursor: pointer; border: none;}
.c1 {color: #633b3f; font-weight: bold; display: inline; }
.error-message { color: #633b3f; }
#email { width: 300px; }
#adresse { width: 400px; }
#CodePostal { width: 50px; }
#ville { width: 225px; }
</style>
</head>
<body bgcolor="#000" >
<p>Merci de prendre le temps de compléter correctement ce formulaire de commande. Celui-ci
se réalise en trois étapes distinces :</p>
- <div class="c1">Etape 1:</div> Vos données personnelles<br />
- <div class="c1">Etape 2:</div> Les caractéristiques de votre commande<br />
- <div class="c1">Etape 3:</div> Les informations supplémentaires
<p>Sachez que toute demande serra étudiée, vous devriez recevoir une réponse sous 3 jours ouvrés.</p>
<?php
if(isset($messagesend)){ echo "<p>$messagesend</p>"; }
?>
<form method="post" action="contact.php" >
<p><label>SEXE :</label>
<input type="radio" name="civilite" id="mr" value="<?php if(isset($mr)) echo $mr; ?>" checked="checked" />M.
<input type="radio" name="civilite" id="mme" value="<?php if(isset($mme)) echo $mme; ?>" />Mme
<input type="radio" name="civilite" id="mlle" value="<?php if(isset($mlle)) echo $mlle; ?>" />Mlle
<p><label for="nom">NOM :</label>
<input type="text" name="nom" id="nom" value="<?php if(isset($nom)) echo $nom; ?>" maxlength="25"/>
<span class="error-message"><?php if(isset($erreurnom)) echo $erreurnom; ?></span></p>
<p><label for="prenom">PRÉNOM:</label>
<input type="text" name="prenom" id="prenom" value="<?php if(isset($prenom)) echo $prenom; ?>" maxlength="25" /> 
<span class="error-message"><?php if(isset($erreurprenom)) echo $erreurprenom; ?></span></p>

<p><label for="email">EMAIL :</label>
<input type="text" name="email" id="email" value="<?php if(isset($email)) echo $email; ?>" maxlength="40"/> 
<span class="error-message"><?php if(isset($erreurmail)) echo $erreurmail; ?></span></p>

<p><label for="adresse">ADRESSE :</label>
<input type="text" name="adresse" id="adresse" value="<?php if(isset($adresse)) echo $adresse; ?>" maxlength="55"/>
<span class="error-message"><?php if(isset($erreuradresse)) echo $erreuradresse; ?></span></p>

<label for="CodePostal">CODE POSTAL :</label>
<input type="text" name="CodePostal" id="CodePostal" value="<?php if(isset($CodePostal)) echo $CodePostal; ?>" maxlength="5"/>
<label for="ville">VILLE:</label>
<input type="text" name="ville" id="ville" id="ville" value="<?php if(isset($ville)) echo $ville; ?>"/>
<span class="error-message"><?php if(isset($erreurville)) echo $erreurville; ?></span>
<span class="error-message"><?php if(isset($erreurCodePostal)) echo $erreurCodePostal; ?></span>
<span class="error-message"><?php if(isset($erreurCodePostal, $erreurville)) echo $erreurCodePostalville; ?></span>
<p><label for="tel">TÉL. :</label>
<input type="text" name="tel" id="tel" value="<?php if(isset($tel)) echo $tel; ?>" maxlength="10" />
<span class="error-message"><?php if(isset($erreurtel)) echo $erreurtel; ?></span></p>
<p><label for="DateDeNaissance">DATE DE NAISSANCE :</label><br />
<select title="jour" name="jour" value=""><?php if(isset($jour)) echo $jour; ?>
   <option value="01">01</option>
   <option value="02">02</option>
   <option value="03">03</option>
   <option value="04">04</option>
   <option value="05">05</option>
   <option value="06">06</option>
   <option value="07">07</option>
   <option value="08">08</option>
   <option value="09">09</option>
   <option value="10">10</option>
   <option value="11">11</option>
   <option value="12">12</option>
   <option value="13">13</option>
   <option value="14">14</option>
   <option value="15">15</option>
   <option value="16">16</option>
   <option value="17">17</option>
   <option value="18">18</option>
   <option value="19">19</option>
   <option value="20">20</option>
   <option value="21">21</option>
   <option value="22">22</option>
   <option value="23">23</option>
   <option value="24">24</option>
   <option value="25">25</option>
   <option value="26">26</option>
   <option value="27">27</option>
   <option value="28">28</option>
   <option value="29">29</option>
   <option value="30">30</option>
   <option value="31">31</option>
</select>
<select title="mois" name="mois" value="<?php if(isset($mois)) echo $mois; ?>">
   <option value="01">01</option>
   <option value="02">02</option>
   <option value="03">03</option>
   <option value="04">04</option>
   <option value="05">05</option>
   <option value="06">06</option>
   <option value="07">07</option>
   <option value="08">08</option>
   <option value="09">09</option>
   <option value="10">10</option>
   <option value="11">11</option>
   <option value="12">12</option>
</select>
<select title="annee" name="annee" value="<?php if(isset($annee)) echo $annee; ?>">
   <option value="2010">2010</option>
   <option value="2009">2009</option>
   <option value="2008">2008</option>
   <option value="2007">2007</option>
   <option value="2006">2006</option>
   <option value="2005">2005</option>
   <option value="2004">2004</option>
   <option value="2003">2003</option>
   <option value="2002">2002</option>
   <option value="2001">2001</option>
   <option value="2000">2000</option>
   <option value="1999">1999</option>
   <option value="1998">1998</option>
   <option value="1997">1997</option>
   <option value="1996">1996</option>
   <option value="1995">1995</option>
   <option value="1994">1994</option>
   <option value="1993">1993</option>
   <option value="1992">1992</option>
   <option value="1991">1991</option>
   <option value="1990">1990</option>
   <option value="1989">1989</option>
   <option value="1988">1988</option>
   <option value="1987">1987</option>
   <option value="1986">1986</option>
   <option value="1985">1985</option>
   <option value="1984">1984</option>
   <option value="1983">1983</option>
   <option value="1982">1982</option>
   <option value="1981">1981</option>
   <option value="1980">1980</option>
   <option value="1979">1979</option>
   <option value="1978">1978</option>
   <option value="1977">1977</option>
   <option value="1976">1976</option>
   <option value="1975">1975</option>
   <option value="1974">1974</option>
   <option value="1973">1973</option>
   <option value="1972">1972</option>
   <option value="1971">1971</option>
   <option value="1970">1970</option>
   <option value="1969">1969</option>
   <option value="1968">1968</option>
   <option value="1967">1967</option>
   <option value="1966">1966</option>
   <option value="1965">1965</option>
   <option value="1964">1964</option>
   <option value="1963">1963</option>
   <option value="1962">1962</option>
   <option value="1961">1961</option>
   <option value="1960">1960</option>
   <option value="1959">1959</option>
   <option value="1958">1958</option>
   <option value="1957">1957</option>
   <option value="1956">1956</option>
   <option value="1955">1955</option>
   <option value="1954">1954</option>
   <option value="1953">1953</option>
   <option value="1952">1952</option>
   <option value="1951">1951</option>
   <option value="1950">1950</option>
   <option value="1949">1949</option>
   <option value="1948">1948</option>
   <option value="1947">1947</option>
   <option value="1946">1946</option>
   <option value="1945">1945</option>
   <option value="1944">1944</option>
   <option value="1943">1943</option>
   <option value="1942">1942</option>
   <option value="1941">1941</option>
   <option value="1940">1940</option>
   <option value="1939">1939</option>
   <option value="1938">1938</option>
   <option value="1937">1937</option>
   <option value="1936">1936</option>
   <option value="1935">1935</option>
   <option value="1934">1934</option>
   <option value="1933">1933</option>
   <option value="1932">1932</option>
   <option value="1931">1931</option>
   <option value="1930">1930</option>
   <option value="1929">1929</option>
   <option value="1928">1928</option>
   <option value="1927">1927</option>
   <option value="1926">1926</option>
   <option value="1925">1925</option>
   <option value="1924">1924</option>
   <option value="1923">1923</option>
   <option value="1922">1922</option>
   <option value="1921">1921</option>
   <option value="1920">1920</option>
</select><span class="error-message"><?php if(isset($erreurjour)) echo $erreurjour; ?></span>
</p>
<input type="submit" value="" class="submit">
</form>
</body>
</html>

Salut :)
Alors déjà pour y voir plus clair, 2 conseils :

  • fait une boucle pour les <option value...>. Tu y verra plus clair ;)
  • Evite de mettre ton css dans ton code directement. Ca allégera ton code et tu y gagnera surtout en lisibilité

Ensuite pour ton pb, regarde du côté de ton hébergeur que la fonction mail soit bien activée !

Vala :)
A+
Stef

Shakuro
Auteur

Hello,

Merci pour les deux trois astuces, il est vrai que le css j'ai pas l'habitude de le faire directement dans mes pages mais j'ai suivis le tutoriel vidéo du formulaire. En tout je vais changer tout ça.

Pour ce qui est de la fonction mail elle est bien activée puisqu'hier je me servais de mon formulaire pour m'envoyer des pages tests. C'est juste que j'ai re-travaillé le code, mais je n'ai plus le petit:

$messagesend = "Votre message a bien été envoyé, merci";

Lorsqu'on appuie sur "submit". Donc pas d'envoi non plus...

Un ami ma dit que sa pourrait peut être venir que mon mail() renvoi peut être un booléen : true/false.

Sa vous parle vous?

Shakuro
Auteur

Merci Tef, au début j'ai bien cru que c'était ça mais en ouvrant mon code php je me suis rendu compte qu'il ne comportait pas ces erreurs d'empty, il s'agit là d'un défaut d'affichage pendant l'uploid du code sur le mini-fofo. Donc considère que : if(!empty($_POST)){ soit écrit comme ça.

Hormis ça tu n'as pas d'autre idée?

ok, question bête : dans ta ligne if(isset($messagesend)){ echo "<p>$messagesend</p>"; } en ligne 151, si tu fais un echo "toto",est-ce qu'il s'affiche ?
Deuxième truc, dsl je n'ai pas trop testé car je suis au taf là, ce ne serait pas plutôt echo $_POST'messagesend'] ?
désolé si je dis une connerie pas trop le temps d'analyser ton code pour l'instant :P

A+
Stef

Je viens de tester ton formulaire et j'ai bien mon message qui a été envoyé. Tu as résolu le problème ou pas ?

Shakuro
Auteur

Hello Dev,

Oui j'ai résolu mon problème de post mail(). Je peaufine le code ICI.

Et j'ai remis mon css, ensuite mes ( if(!preg_match( ) petit à petit jusqu'à revoir une éventuelle erreur, sa n'a pas été le cas... comme le montre le liens du début de mon message.

Donc ba finalement, qu'est-ce qui à résolu mon problème? I dont know.

Maintenant je n'ai plus qu'à trouver comment paramétrer mes "radios" et mes <select> ( il n'y a malheureusement pas de vidéo sur Grafikart qui montre comment les faire ='( c'est bien dommage.

En tout cas merci à vous, et surtout à Tef qui malgré le travail c'est bien occupé de moi =D.

Cool si tu as réussi :)
Bah tu sais charge du serveur ou pb temporaire chez l'hébergeur... ca peut venir de plusieurs trucs !
Bonne continuation :)

Mets la question en résolue alors, merci.

Non, la flèche verte correspond à la réponse. Pas mettre [Résolu] dans le titre :)

Mdr celle la je m'y attendais pas

Shakuro
Auteur

Ah mille excuses les amis ^^.

Dites moi vous n'auriez pas un tutoriel, (video) de préference montrant comment realiser 1 formulaire en plusieurs parties?

Bon créer les formulaires je sais faire, grâçe à votre tutoriel vidéo ^^, mais enfaite ce premier formulaire ICI va m'envoyer (une fois correctement rempli) vers la suite (un autre formulaire) qui à son tour va me renvoyer vers la derniere partie (champ de texte standard). A partir de là je pourrais finaliser le tout et en appuyant sur sbmit, l'integralité de mes infos serront quant-à elles envoyées sur mon email.

Vous voyez où je veux en venir?