Formulaire mail xhtml et css avec fichier php : soucis

Madiline
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 20 Avr 2011

Formulaire mail xhtml et css avec fichier php : soucis

Message le Mer Avr 20, 2011 13:42

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: Tout sélectionner
<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: Tout sélectionner
<?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");   
?>

Ottis
WRInaute discret
WRInaute discret
 
Messages: 62
Inscription: 2 Mar 2010

Re: Formulaire mail xhtml et css avec fichier php : soucis

Message le Mer Avr 20, 2011 18:55

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: Tout sélectionner
if (!empty($_POST['submit']) && $_POST['submit'] == 'submit')
{
    if (!empty($_POST['nom']) && !empty($_POST['prenom']) //Etc...

Madiline
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 20 Avr 2011

Re: Formulaire mail xhtml et css avec fichier php : soucis

Message le Jeu Avr 21, 2011 15:49

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: Tout sélectionner
<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: Tout sélectionner
<?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");

   }

}

?>

Ottis
WRInaute discret
WRInaute discret
 
Messages: 62
Inscription: 2 Mar 2010

Re: Formulaire mail xhtml et css avec fichier php : soucis

Message le Jeu Avr 21, 2011 19:12

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: Tout sélectionner
<?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: Tout sélectionner
<?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
   }
}

?>

Madiline
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 20 Avr 2011

Re: Formulaire mail xhtml et css avec fichier php : soucis

Message le Lun Mai 02, 2011 13:41

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: Tout sélectionner
<?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");
   }

}

?>


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité