PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » [Résolu] form probleme transmission php » 08-09-2009 17:21:02

Bonjour à tous,
je souhaite savoir comment marquer [résolu] dans l'entête de la discution.

Grand merci.

#2 Re : Forum Général PHP » [Résolu] form probleme transmission php » 08-09-2009 17:21:02

Bonjour mcAllan,

J'avais en effet des problèmes de variable.
j'ai modifié le fichier php comme convenu, et j'ai pu tracer les erreurs.

grand merci mon script fonctionne.

#3 Re : Forum Général PHP » [Résolu] form probleme transmission php » 08-09-2009 17:21:02

Bonsoir mcAllan, merci pour ta reponse,
je test demain et je te tiens au courant des résultats. Je compte employer :

 
echo $prenom;
echo ' ';
echo $nom;
echo ' ';
/* etc ... */

Cela te semble t'il juste ?

Merci, bonne soirée, a demain. En ce qui concerne AAO, je suis tout à fait d'accord, je pratique aussi (le plus souvent possible) .

#4 Forum Général PHP » [Résolu] form probleme transmission php » 08-09-2009 17:21:02

gilgab
Réponses : 5

Bonjour à tous, j'ai un problème, je souhaite transmettre par mail des informations récupérées par un formulaire sur un site web (en cours de test).

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html lang="fr">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>titre de la page</title>
    <link rel="stylesheet" type="text/css" href="css/base.css" media="screen" />
    <!--[if lte IE 6]>
      <link rel="stylesheet" type="text/css" href="css/ie.css" media="screen" />
    <![endif]-->
   
    <link rel="stylesheet" type="text/css" href="css/view.css" media="all">
    <script type="text/javascript" src="js/view.js"></script>
    <script type="text/javascript" src="js/calendar.js"></script>
   
  </head>
 
  <body>
    <div id="global">
      <div id="header">
        <h1>titre de la page</h1>
      </div>
      <div id="center">
        <div id="content">

          <form id="form_97412" class="appnitro"  method="post" action="contact_envoi.php">
          <div class="form_description">
            <h2>Contact</h2>
            <p>Pour une réservation, une demande de renseignement, ou tout simplement, nous envoyer un petit bonjour.
            </p>
            </div>
           
          <ul >
          <li id="li_1" >
            <label class="description" for="element_1">Civilité </label>
            <div class="left">
              <input id="prenom" name="prenom" class="element text medium" type="text" maxlength="255" value=""/>
              <label for="prenom">Prénom</label>
            </div>
            <div class="right">
              <input id="nom" name="nom" class="element text medium" type="text" maxlength="255" value=""/>
              <label for="nom">Nom</label>
          </li>
          <li id="li_2" >
            <div class="left">
              <input id="email" name="email" class="element text medium" type="text" maxlength="255" value=""/>
              <label for="email">Email</label>
            </div>
            <div class="right">
              <input id="telephone" name="telephone" class="element text medium" type="text" maxlength="255" value=""/>
              <label for="telephone">Téléphone</label>
            </div>         
          </li>
         
          <li id="li_3" >
            <label class="description" for="element_5">Adresse </label>
            <div>
              <input id="adresse1" name="adresse1" class="element text large" value="" type="text">
              <label for="adresse1">Numéro et rue</label>
            </div>
            <div>
              <input id="adresse2" name="adresse2" class="element text large" value="" type="text">
              <label for="adresse2">Adresse Ligne 2</label>
            </div>
            <div class="left">
              <input id="codepostal" name="codepostal" class="element text medium" maxlength="15" value="" type="text">
              <label for="codepostal">Code Postal</label>
            </div>   
            <div class="right">
              <input id="ville" name="ville" class="element text medium" value="" type="text">
              <label for="ville">Ville</label>
            </div>
            <div class="left">
              <input id="region" name="region" class="element text medium" maxlength="15" value="" type="text">
              <label for="region">Etats / Région / Département</label>
            </div>   
            <div class="right">
              <select class="element select medium" id="pays" name="pays">
              <option value="" selected="selected"></option>
              <option value="Afghanistan" >Afghanistan</option>
              <option value="Albania" >Albania</option>

/* ... je passe le reste des pays ... */

              </select>
              <label for="pays">Pays</label>
            </div>
          </li>
         
          <li id="li_4" >
            <div class="left">
    <label class="description" for="element_6">Date d'arrivée </label>
    <span>
      <input id="element_6_1" name="element_6_1" class="element text" size="2" maxlength="2" value="" type="text"> /
      <label for="element_6_1">JJ</label>
    </span>
    <span>
      <input id="element_6_2" name="element_6_2" class="element text" size="2" maxlength="2" value="" type="text"> /
      <label for="element_6_2">MM</label>
    </span>
    <span>
      <input id="element_6_3" name="element_6_3" class="element text" size="4" maxlength="4" value="" type="text">
      <label for="element_6_3">AAAA</label>
    </span>
 
    <span id="calendar_6">
      <img id="cal_img_6" class="datepicker" src="images/calendar.gif" alt="Pick a date."> 
    </span>
    <script type="text/javascript">
      Calendar.setup({
      inputField   : "element_6_3",
      baseField    : "element_6",
      displayArea  : "calendar_6",
      button     : "cal_img_6",
      ifFormat   : "%B %e, %Y",
      onSelect   : selectEuropeDate
      });
    </script>
     
    </div>
            <div class="right"><li id="li_7" >
    <label class="description" for="element_7">Date de départ </label>
    <span>
      <input id="element_7_1" name="element_7_1" class="element text" size="2" maxlength="2" value="" type="text"> /
      <label for="element_7_1">JJ</label>
    </span>
    <span>
      <input id="element_7_2" name="element_7_2" class="element text" size="2" maxlength="2" value="" type="text"> /
      <label for="element_7_2">MM</label>
    </span>
    <span>
      <input id="element_7_3" name="element_7_3" class="element text" size="4" maxlength="4" value="" type="text">
      <label for="element_7_3">AAAA</label>
    </span>
 
    <span id="calendar_7">
      <img id="cal_img_7" class="datepicker" src="images/calendar.gif" alt="Pick a date."> 
    </span>
    <script type="text/javascript">
      Calendar.setup({
      inputField   : "element_7_3",
      baseField    : "element_7",
      displayArea  : "calendar_7",
      button     : "cal_img_7",
      ifFormat   : "%B %e, %Y",
      onSelect   : selectEuropeDate
      });
    </script>
            </div>
          </li>  
          <li id="li_8" >
            <label class="description" for="objet">Objet : </label>
            <span>
              <input id="objet" name="objet" class="element radio" type="radio" value="Demande de renseignements" />
              <label class="choice" for="objet">Demande de renseignements</label>
              <input id="objet" name="objet" class="element radio" type="radio" value="Réservation : Maison principale" />
              <label class="choice" for="objet">Réservation : Maison principale</label>
              <input id="objet" name="objet" class="element radio" type="radio" value="Réservation : Gite 2" />
              <label class="choice" for="objet">Réservation : Gite 2</label>
            </span>
          </li>  
          <li id="li_9" >
            <label class="description" for="text">Votre message :</label>
            <div>
              <textarea id="text" name="text" class="element textarea small"></textarea>
            </div>
          </li>
          <li class="buttons">
              <input type="hidden" name="form_id" value="97412" />
            <input type="submit" name="envoi" value="Envoyer le formulaire !" />
          </li>
        </ul>
      </form>
       
      </div>
     
      <div id="sidebar">
        <h3>Navigation</h3>
          <ul id="menu">
            <li><a href="index.htm" title="Racine du site">Racine du site</a></li>
            <li><a href="accueil.htm" title="Accueil">Accueil</a></li>
            <li><a href="gite1.htm" title="Premier Gite">Gite 1</a></li>
            <li><a href="gite2.htm" title="Second Gite">Gite 2</a></li>
            <li><a href="acces.htm" title="Accès">Accès</a></li>
            <li><a href="contact.htm" title="Contact">Contact</a></li>
            <li><a href="credits.htm" title="Crédits">Crédits</a></li>
          </ul>

        </div>
      </div>
      <div id="footer">
        <p><img src="images/copyleft.png" title="copyleft">Je suis un pied de page. Et comme disait Groucho Marx, si vous n'aimez pas mes opinions, j'en ai d'autres.</p>
      </div>
    </div>
  </body>
</html>

Voila pour le formulaire html, mon probleme se situe probablement sur le script php qui doit envoyer le mail vers ma boite.

<?php
  /*  CONFIGURATION */
  $destinataire .= "mon adresse@monadresse.fr";
 
  // copie ? (envoie une copie au visiteur)
  $copie = 'non'; // 'oui' ou 'non'

  // Messages de confirmation du mail
  $text_envoye = "Votre text nous est bien parvenu !";
  $text_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

  // Messages d'erreur du formulaire
  $text_erreur_formulaire = "Vous devez d'abord <a href=\"contact.htm\">envoyer le formulaire</a>.";
  $text_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

  /* FIN DE LA CONFIGURATION */

  // on teste si le formulaire a été soumis
  if (!isset($_POST['envoi']))
  {
    // formulaire non envoyé
    echo '<p>'.$text_erreur_formulaire.'</p>'."\n";
  }
  else
  {
    /*
     * cette fonction sert à nettoyer et enregistrer un texte
     */

    function Rec($text)
    {
      $text = trim($text); // delete white spaces after & before text
      if (1 === get_magic_quotes_gpc())
      {
        $stripslashes = create_function('$txt', 'return stripslashes($txt);');
      }
      else
      {
        $stripslashes = create_function('$txt', 'return $txt;');
      }

      // magic quotes ?
      $text = $stripslashes($text);
      $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
      $text = nl2br($text);
      return $text;
    };

    /*  Cette fonction sert à vérifier la syntaxe d'un email  */
    function IsEmail($email)
    {
      $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
      return (eregi($pattern,$email)) ? true : false;
    };

    // formulaire envoyé, on récupère tous les champs.
    $prenom  = (isset($_POST['prenom']))  ? Rec($_POST['prenom'])  : ''; // prenom
    $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : ''; // nom
    $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : ''; // email
    $telephone   = (isset($_POST['telephone']))   ? Rec($_POST['telephone'])   : ''; // telephone
    $adresse1 = (isset($_POST['adresse1'])) ? Rec($_POST['adresse1']) : ''; // adresse1
    $adresse2 = (isset($_POST['adresse2'])) ? Rec($_POST['adresse2']) : ''; // adresse2
    $codepostal = (isset($_POST['codepostal'])) ? Rec($_POST['codepostal']) : ''; // codepostal
    $ville = (isset($_POST['ville'])) ? Rec($_POST['ville']) : ''; // ville
    $region = (isset($_POST['region'])) ? Rec($_POST['region']) : ''; // region
    $pays = (isset($_POST['pays'])) ? Rec($_POST['pays']) : ''; // pays
    $date_arr_jj = (isset($_POST['date_arr_jj'])) ? Rec($_POST['date_arr_jj']) : ''; // date_arr_jj
    $date_arr_mm = (isset($_POST['date_arr_mm'])) ? Rec($_POST['date_arr_mm']) : ''; // date_arr_mm
    $date_arr_aa = (isset($_POST['date_arr_aa'])) ? Rec($_POST['date_arr_aa']) : ''; // date_arr_aa
    $date_dep_jj = (isset($_POST['date_dep_jj'])) ? Rec($_POST['date_dep_jj']) : ''; // date_dep_jj
    $date_dep_mm = (isset($_POST['date_dep_mm'])) ? Rec($_POST['date_dep_mm']) : ''; // date_dep_mm
    $date_dep_aa = (isset($_POST['date_dep_aa'])) ? Rec($_POST['date_dep_aa']) : ''; // date_dep_aa
    $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; // objet
    $text = (isset($_POST['text'])) ? Rec($_POST['text']) : ''; // text

    // On va vérifier les variables et l'email ...
    $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

    if (($prenom != '') && ($nom != '') && ($email != '') && ($telephone != '') && ($adresse1 != '') && ($adresse2 != '') && ($codepostal != '') && ($ville != '') && ($region != '') && ($pays != '') && ($date_arr_jj != '') && ($date_arr_mm != '') && ($date_arr_aa != '') && ($date_dep_jj != '') && ($date_dep_mm != '') && ($date_dep_aa != '') && ($objet != '') && ($text != ''))
    {
      // les 4 variables sont remplies, on génère puis envoie le mail
      $headers = 'From: '.$prenom.' '.$nom.' <'.$email.'>' . "\r\n";

      // envoyer une copie au visiteur ?
      if ($copie == 'oui')
      {
        $cible = $destinataire.','.$email;
      }
      else
      {
        $cible = $destinataire;
      };

      // Remplacement de certains caractères spéciaux
      $text = str_replace("'","'",$text);
      $text = str_replace("’","'",$text);
      $text = str_replace(""",'"',$text);
      $text = str_replace('
<br>','',$text);
      $text = str_replace('
<br />','',$text);
      $text = str_replace("<","<",$text);
      $text = str_replace(">",">",$text);
      $text = str_replace("&","&",$text);
      $text.="\n";
      $text.="Prénom    : ".$prenom."\n";
      $text.="Nom       : ".$nom."\n";
      $text.="Email     : ".$email."\n";
      $text.="Téléphone : ".$telephone."\n";
      $text.="\n";
      $text.="Adresse     : ".$adresse1."\n";
      $text.="Adresse     : ".$adresse2."\n";
      $text.="Code postal  : ".$codepostal."\n";
      $text.="Ville       : ".$ville."\n";
      $text.="Région     : ".$region."\n";
      $text.="Pays    : ".$pays."\n";
      $text.="\n";
      $text.="Date d'
arrivée   : ".$date_arr_jj."/".$date_arr_mm."/".$date_arr_aa."\n";
      $text.="
Date de départ   : ".$date_dep_jj."/".$date_dep_mm."/".$date_dep_aa."\n";
     
      // Envoi du mail
      if (mail($cible, $objet, $text, $headers))
      {
        echo '<p>'.$text_envoye.'</p>'."
\n";
      }
      else
      {
        echo '<p>'.$text_non_envoye.'</p>'."
\n";
      };
    }
    else
    {
      // une des 3 variables (ou plus) est vide ...
      echo '<p>'.$text_formulaire_invalide.' <a href="
contact.htm">Retour au formulaire</a></p>'."\n";
    };
  }; // fin du if (!isset($_POST['envoi']))
?>

Il est evident que j'ai mis la bonne adresse à destinataire.
je reçois le message suivant lorsque je clic sur "envoyer" : "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur. Retour au formulaire".
J'ai beau pointer dans tous les sens, je remplis le formulaire completement.

Pouvez-vous m'aider s'il vous plait ?
Grand merci par avance.

Pied de page des forums

Propulsé par FluxBB