Formulaire mail xhtml et css avec fichier php : soucis

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Madiline, 20 Avril 2011.

  1. Madiline
    Madiline Nouveau WRInaute
    Inscrit:
    20 Avril 2011
    Messages:
    5
    J'aime reçus:
    0
    Bonjour,
    J'ai besoin d'être éclairer... J'ai réalisé un formulaire en xhtml et css, ainsi qu'un fichier annexe php et ai quelques soucis pour le transfert direct des informations sur le mail. Mon hébergeur (ovh) prend bien en charge le php.
    > Sans fichier php, les données sont bien envoyées via la messagerie.
    > Lorsque je récupère un formulaire et un code php "tout fait", le mail arrive et il contient bien les infos.
    > Par contre avec mon formulaire, qui me plait bien, cela ne marche pas, le mail arrive mais il est vide.
    Je me demande donc d'où vient l'erreur. Mon formulaire xhtml est il mal construit? Ou dois-je intégrer plus d'options dans le fichier php? J'aimerais comprendre. Toutes les informations sont les bienvenues. J'ai lu plusieurs tutoriels, j'ai compris dans l'ensemble le principe, mais je ne comprend pas pourquoi mon formulaire ne fonctionne pas. Et j'avoue ne pas connaître le php.
    Merci d'avance pour vos réponses.

    Mon code html :

    Code:
    <div id="formulaire"> 
    <form id="monform" action="envoi.php" method="post" enctype="text/plain"> 
    <input type=hidden name=subject value=formmail> <br /> 
     
    <fieldset> 
    <legend>Vos coordonnées</legend><p> 
    <label for="form_lastname">Nom  </label> 
    <input type="text" id="form_lastname" name="NOM" /></p> 
    <p> 
    <label for="form_prenom">Prénom  </label> 
    <input type="text" id="form_prenom" name="PRENOM" /></p> 
    <p> 
    <label for="form_mail">Mail </label> 
    <input type="text" id="form_mail" name="MAIL" /></p> 
    <p> 
    <label for="form_tel">Téléphone </label> 
    <input type="text" id="form_tel" name="TELEPHONE" /></p> 
    <p> 
    <label for="form_address">Adresse  </label> 
    <input type="text" id="form_address" name="ADRESSE" /></p> 
    <p> 
    <label for="form_postal_code">Code postal  </label> 
    <input type="text" id="form_postal_code" name="CODE POSTAL" /></p> 
    <p> 
    <label for="form_city">Ville  </label> 
    <input type="text" id="form_city" name="VILLE" /></p> 
    <p> 
    </fieldset> 
    <br /> 
     
    <fieldset> 
    <legend>Votre demande</legend> 
    <p> 
    <label for="form_sujet">Sujet </label> 
    <select id="sujet" name="SUJET"> 
    <option value="Appartement Renoir">Appartement Renoir</option> 
    <option value="Appartement Ste Catherine">Appartement Ste Catherine</option> 
    <option value="Studio Monet">Studio Monet</option> 
    <option value="Studio Boudin">Studio Boudin</option> 
    <option value="Studio Sisley">Studio Sisley</option> 
    <option value="Informations générales">Informations générales</option> 
    </select></p> 
    <p> 
    <label for="form_personnes">Nbre de personnes  </label> 
    <input type="text" id="form_personnes" name="NOMBRE DE PERSONNES" /></p> 
    <p> 
    <label for="form_arrivee">Date d'arrivée  </label> 
    <input type="text" id="form_arrivee" name="DATE ARRIVEE" /></p> 
    <p> 
    <label for="form_depart">Date de départ </label> 
    <input type="text" id="form_depart" name="DATE DEPART" /></p> 
    </fieldset> 
    <br /> 
     
    <fieldset> 
    <legend>Votre message</legend> 
    <p> 
    <label class="cf_label" style="width: 150px;"></label> 
    <textarea id="text_9" class="cf_inputbox" name="LE MESSAGE" cols="30" title="" rows="5"></textarea> 
    </p> 
    <p> 
    </fieldset> 
     
    <p> 
    <label class="form_label_nostyle">&nbsp;</label> 
    <input type="submit" name="submit" /></p> 
    </form>
    Mon fichier php:

    Code:
    <?php 
    $TO = "madi.line@yahoo.fr"; 
     
    $h = "From: " . $TO; 
     
    $message = ""; 
     
    while (list($key, $val) = each($HTTP_POST_VARS)) { 
    $message .= "$key : $val\n"; 
    } 
     
    mail($TO, $subject, $message, $h); 
     
    Header("Location:  http://www.location-honfleur-gaucher.com/merci.html");   
    ?>
     
  2. Ottis
    Ottis WRInaute discret
    Inscrit:
    2 Mars 2010
    Messages:
    57
    J'aime reçus:
    0
    Bonjour,

    Déjà, première chose que je vous conseille afin que quelqu'un vous aide, c'est d'indenter votre code correctement parce que là, ça ne donne pas envie...
    Ensuite, au premier coups d'oeil sur votre code php, on voit qu'il manque plusieurs choses : déjà, vous ne récupérez pas les variables postées. Donc comment voulez vous les intégrer à votre message dans ce cas là ? Commencez par verifier leur existence :

    Code:
    if (!empty($_POST['submit']) && $_POST['submit'] == 'submit')
    {
        if (!empty($_POST['nom']) && !empty($_POST['prenom']) //Etc...
     
  3. Madiline
    Madiline Nouveau WRInaute
    Inscrit:
    20 Avril 2011
    Messages:
    5
    J'aime reçus:
    0
    Bonjour,
    J'ai oublié de le préciser, mais je suis novice en terme de php.
    Je vous remercie pour vos conseils, il est vrai que mon code n'était pas indenté...
    Mon soucis est que je ne sais pas par quel bout prendre la chose, je n'arrive pas à trouver d'infos sur comment fabriquer ce document et quels éléments insérer.
    J'ai fais une tentative plus complète, mais qui ne marche toujours pas. Ce qui n'est pas étonnant car je teste sans vraiment connaître la signification des réglages.
    Pouvez-vous m'éclairer ? D'avance merci.

    Mon code html :
    Code:
    <div id="formulaire">
       <form id="monform" action="envoi3.php" method="post" enctype="text/plain">
       <input type=hidden name=subject value=formmail> 
          <br />
          <fieldset>
          <legend>Vos coordonnées</legend>
          <p>
            <label for="form_lastname">Nom  </label>
              <input type="text" id="form_lastname" name="nom" />
            </p><p>
            <label for="form_prenom">Prénom  </label>
              <input type="text" id="form_prenom" name="prenom" />
            </p><p>
            <label for="form_mail">Mail </label>
              <input type="text" id="form_mail" name="mail" />
            </p><p>
            <label for="form_tel">Téléphone </label>
              <input type="text" id="form_tel" name="telephone" />
            </p><p>
            <label for="form_address">Adresse  </label>
                <input type="text" id="form_address" name="adresse" />
            </p><p>
            <label for="form_postal_code">Code postal  </label>
                <input type="text" id="form_postal_code" name="codepostal" />
            </p><p>
            <label for="form_city">Ville  </label>
                <input type="text" id="form_city" name="ville" />
            </p><p>
          </fieldset>
        
          <br />
          <fieldset>
          <legend>Votre demande</legend>
          <p>
            <label for="form_sujet">Sujet </label>
                <select id="sujet" name="sujet">
                  <option value="AppartementRenoir">Appartement Renoir</option>
                  <option value="AppartementSteCatherine">Appartement Ste Catherine</option>
                  <option value="StudioMonet">Studio Monet</option>
                  <option value="StudioBoudin">Studio Boudin</option>
                  <option value="StudioSisley">Studio Sisley</option>
                  <option value="Informationsgenerales">Informations générales</option>
                </select>
            </p><p>
            <label for="form_personnes">Nbre de personnes  </label>
                <input type="text" id="form_personnes" name="nbrepersonnes" />
            </p><p>
            <label for="form_arrivee">Date d'arrivée  </label>
                <input type="text" id="form_arrivee" name="arrivee" />
            </p><p>
            <label for="form_depart">Date de départ </label>
                <input type="text" id="form_depart" name="depart" />
            </p>
          </fieldset>
          <br />
            
          <fieldset>
          <legend>Votre message</legend>
          <p>
            <label class="cf_label" style="width: 150px;"></label>
                <textarea id="text_9" class="cf_inputbox" name="infos" cols="30" title="" rows="5"></textarea>
            </p><p>
          </fieldset>
        
          <p>
          <label class="form_label_nostyle">&nbsp;</label>
             <input type="submit" name="submit" />
          </p>
       </form>
    
    </div>

    Et le php :
    Code:
    <?php
    
    if (!empty($_POST['submit']) && $_POST['submit'] == 'submit')
    
    {
       if(!empty($_POST[$nom]) && !empty($_POST[$prenom]) && !empty($_POST[$mail]) && !empty($_POST[$telephone]) && !empty($_POST[$adresse]) && !empty($_POST[$codepostal]) && !empty($_POST [$ville]) && !empty($_POST[$sujet]) && !empty($_POST[$telephone])  && !empty($_POST[$nbrepersonnes]) && !empty($_POST[$arrivee]) && !empty($_POST[$depart]) && !empty($_POST[$infos])){
    
       extract($_POST);
    
    		$message=str_replace("\'","'",$message);
    
    		$destinataire="madi.line@yahoo.fr";
    
    		$sujet="formulaires contact";
    
    		$message="Une nouvelle réponse \n
    
    		NOM : $nom \n
    
    		PRENOM : $prenom \n
    
    		MAIL : $mail \n
    
    		TELEPHONE : $telephone \n
    		
    		ADRESSE : $adresse \n
    		
    		CODE POSTAL : $codepostal \n
    		
    		VILLE : $ville \n
    		
    		<strong></strong>
    
    		SUJET : $AppartementRenoir \n
    
    		SUJET : $AppartementSteCatherine \n
    
    		SUJET : $StudioMonet \n
    
    		SUJET : $StudioBoudin \n
    
    		SUJET : $StudioSisley \n
    		
    		SUJET : $Informationsgenerales \n
    
    		NOMBRE DE PERSONNES : $nbrepersonnes \n
    
    		DATE ARRIVEE : $arrivee \n
    		
    		DATE DEPART : $depart \n
    
    		LE MESSAGE : $infos";
    
    
    
    		$entete="From: $nom \n Reply-To: $Email";
    
    		mail($destinataire,$sujet,$message,$entete);
    
            header("Location: http://www.saveurs-graphiques.com/essaimenu/merci.html");
    
       }
    
       else{ 
    
            header("Location: http://www.saveurs-graphiques.com/essaimenu/contact.html");
    
       }
    
    }
    
    ?>
     
  4. Ottis
    Ottis WRInaute discret
    Inscrit:
    2 Mars 2010
    Messages:
    57
    J'aime reçus:
    0
    Première chose, transformez votre page html en page contact.php :

    Rajoutez ceci tout en haut, pour inclure la page de traitement (je vous laisse mettre le chemin exact) :

    Code:
    <?php
    
    if (is_file('chemin/envoi.php'))
    {
    	include 'chemin/envoi.php';
    }
    
    ?>
    Modifiez ceci dans votre formulaire : <form action="contact.php">. Ce qui permettra d'appeler la page courante.

    Voici le fichier envoi.php. J'ai juste corrigé quelques trucs, j'ai pas testé. Essayez le et dites moi s'il y a des erreurs.
    Il s'agit d'un exemple simple. Je vous conseille de tester la validité du mail ainsi que des autres variables postées.

    Code:
    <?php
    if (!empty($_POST['submit']) && $_POST['submit'] == 'submit')
    {
    	if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['mail']) && !empty($_POST['telephone']) && !empty($_POST['adresse']) && !empty($_POST['codepostal']) && !empty($_POST ['ville']) && !empty($_POST['sujet']) && !empty($_POST['telephone'])  && !empty($_POST['nbrepersonnes']) && !empty($_POST['arrivee']) && !empty($_POST['depart']) && !empty($_POST['infos']))
    	{
    		extract($_POST);
    		$from = $mail;
    		$headers = "From: $nom\r\n"
    		."Reply-To: $from\r\n"
    		.'Content-Type: text/plain; charset="iso-8859-1"'."\n"
    		.'Content-Transfer-Encoding: 8bit';
    		$destinataire = 'madi.line@yahoo.fr';
    		$sujet = $sujet;
    		$message ='Une nouvelle réponse de'.'\n'
    		.'NOM : '.$nom.'\n'
    		.'PRENOM : '.$prenom .'\n'
    		.'MAIL : '.$mail.'\n'
    		.'TELEPHONE : '$telephone.'\n'
    		.'ADRESSE : '$adresse.'\n'
    		.'CODE POSTAL : '.$codepostal.'\n'
    		.'VILLE : '.$ville.'\n'
    		.'SUJET : '.$sujet.'\n'
    		.'NOMBRE DE PERSONNES : '.$nbrepersonnes.'\n'
    		.'DATE ARRIVEE : '$arrivee.'\n'
    		.'DATE DEPART : '.$depart.'\n'
    		.'LE MESSAGE : '.$infos;
    
    		mail($destinataire, $sujet, $message, $headers);
            header("Location: http://www.saveurs-graphiques.com/essaimenu/merci.html");
    	}
    	else
    	{
    		$erreur = 'Veuillez remplir tous les champs'; //Integrez un affichage des erreurs a contact.php
    	}
    }
    
    ?>
     
  5. Madiline
    Madiline Nouveau WRInaute
    Inscrit:
    20 Avril 2011
    Messages:
    5
    J'aime reçus:
    0
    Bonjour,
    Merci à toi.
    Je note bien tes conseils de la page php. J'ai réussi à faire fonctionner le formulaire ainsi voir ci-dessous.
    J'avais en effet des erreurs dans le code php et dans le code html j'avais mis "enctype="text/plain" qui a priori donnait un mail vide.
    Merci encore !

    Lucie

    Le code php ajusté :
    Code:
    <?php
    error_reporting(E_ALL);
    
    if (!empty($_POST['submit']) && $_POST['submit'] == 'Envoyer')
    {
       if(!empty($_POST[ 'nom' ])
        && !empty($_POST['prenom'])
        && !empty($_POST['mail'])
        && !empty($_POST['telephone'])
        && !empty($_POST['adresse'])
        && !empty($_POST['codepostal'])
        && !empty($_POST ['ville'])
        && !empty($_POST['demande'])
        && !empty($_POST['telephone'])
        && !empty($_POST['nbrepersonnes'])
        && !empty($_POST['arrivee'])
        && !empty($_POST['depart'])
        && !empty($_POST['infos'])) {
    
            extract($_POST);
            $destinataire="gaucherjp@neuf.fr";
    
            $sujet="Locations Honfleur : Vous avez un message";
    
            $message="Nouveau message \n
    
            NOM : $nom \n
    
            PRENOM : $prenom \n
    
            MAIL : $mail \n
    
            TELEPHONE : $telephone \n
    
            ADRESSE : $adresse \n
    
            CODE POSTAL : $codepostal \n
    
            VILLE : $ville \n
    
            SUJET : $demande \n
    
            NOMBRE DE PERSONNES : $nbrepersonnes \n
    
            DATE ARRIVEE : $arrivee \n
    
            DATE DEPART : $depart \n
    
            LE MESSAGE : $infos";
    
    
    
            $entete="Reply-To: $mail \n";
    
            if(mail($destinataire,$sujet,$message,$entete)) {
                header("Location: http://www.monadresse.fr");
            } else {
       header("Location: http://www.monadresse.fr");
            }
       }
       else{
            header("Location: http://www.monadresse.fr");
       }
    
    }
    
    ?>
     
Chargement...
Similar Threads - mail xhtml css Forum Date
Quel client EMail Linux ? Le café de WebRankInfo 2 Juillet 2022
Maillage interne Débuter en référencement 24 Juin 2022
Adresse mail ne fonctionne plus après modif de DNS Noms de domaine et référencement 26 Mai 2022
Maillage interne et catégories WP Netlinking, backlinks, liens et redirections 23 Mai 2022
Comment créer un fichier SPF (authentification emails) ? Noms de domaine et référencement 14 Mars 2022
Morosité de café: J'arrive pas à envoyer un mail de newsletter. Administration d'un site Web 16 Février 2022
Menu, liens et maillage du site Débuter en référencement 6 Janvier 2022
Email bizarre de Google - GMB Google : l'entreprise, les sites web, les services 13 Décembre 2021
WordPress Projet de refonte maillage interne siloing/custom taxonomie Techniques avancées de référencement 18 Novembre 2021
Avis sur une campagne emailing Demandes d'avis et de conseils sur vos sites 12 Novembre 2021
La fonction mail (PHP) ne passe pas ! Demandes d'avis et de conseils sur vos sites 28 Juin 2021
Astuce Brainstorming sur les préfixes d'un mail pro Le café de WebRankInfo 12 Avril 2021
DMARC quelle email ? Droit du web (juridique, fiscalité...) 9 Avril 2021
Problème mail automatique Développement d'un site Web ou d'une appli mobile 31 Mars 2021
Maillage interne et jus de liens Débuter en référencement 28 Février 2021
Les mails de mon domaine considéré comme spam Administration d'un site Web 19 Février 2021
Liens ventes croisées et maillage interne | E-commerce Netlinking, backlinks, liens et redirections 25 Novembre 2020
Site e-commerce : profondeur et maillage interne Problèmes de référencement spécifiques à vos sites 9 Novembre 2020
Maillage du cocon sémantique sur des articles top 5 Netlinking, backlinks, liens et redirections 25 Octobre 2020
activité inhabituelle impossible d'ouvrir hotmail Droit du web (juridique, fiscalité...) 18 Octobre 2020