Pb dans traitement3.php

Bonjour,

J ai deux problemes dans mon fichier traitement3.php

1 - quand l utilisateur selectionne plusieurs valeurs avec les checkbox, seulement la derniere valeurs apparait sur le mail que je recois
2 - je souhaite qualifier les valeurs que je recois sur mon mail, c est a dire pour 'plongee', l utilisateur peut selectioner 'oui' ou 'non' quand je recois le mail de l utilsateur, est specifie seulement 'oui' si l utilisateur a selectionne 'oui'> Je souhaiterai recevoir plongee:oui

<html>
<?php
$plongee=htmlentities($_POST['plongee']);
$cours=htmlentities($_POST['cours']);
$jour=htmlentities($_POST['jour']);
$texte.=$plongee;
$texte.=$cours;
$texte.=$jour;
$adresse="info@********.com";
$from="From: $prenom $nom<$email>\r\n";
$from.="Reply-To: $prenom $nom <$email>\n";
$from.="X-priority:3\n";
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html";
if (mail($adresse,$sujet,$texte,$from))
echo("<center><font color=blue><br><br><br><h2>Formulaire envoyé ! Je vous répondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir à l'accueil</a></center>");
else
echo("<center><font color=red><br><br><br><h2>Problème à l'envoi du mail...désolé nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>");
?>
Configuration: Windows XP
Internet Explorer 7.0

6 réponses

  1. Bonjour

    1 - comment as-tu défini tes checkbox dans ton formulaire, et comment récupères-tu leur valeur ?
    2 - pourtant, tu nous as déjà montré un script où tu le faisais bien... il faut faire (je ne montre que pour plongée) :
    $texte.=" plongée : ".$plongee;
    0
    1. Merci pour question n2

      1 - <p>jour:
      <table border='0' width='100%' cellspacing='1' cellpadding='4'>
      <tr>
      <td width='7%'><input type='hidden' name='champ8[]' value='aucune'>
      <input type='checkbox' name='jour' value='lundi'></td>
      <td width='93%'>lundi</td>
      </tr>
      <tr>
      <td width='7%'><input type='checkbox' name='jour' value='mardi'></td>
      <td width='93%'>mardi</td>
      </tr>
      <tr>
      <td width='7%'><input type='checkbox' name='jour' value='mercredi'></td>
      <td width='93%'>mercredi</td>
      </tr>
      </table>
      <p> </p>
      0
      1. <p>jour:
        <table border='0' width='100%' cellspacing='1' cellpadding='4'>
        <tr>
        <td width='7%'><input type='checkbox' name='jour' value='lundi'></td>
        <td width='93%'>lundi</td>
        </tr>
        <tr>
        <td width='7%'><input type='checkbox' name='jour' value='mardi'></td>
        <td width='93%'>mardi</td>
        </tr>
        <tr>
        <td width='7%'><input type='checkbox' name='jour' value='mercredi'></td>
        <td width='93%'>mercredi</td>
        </tr>
        </table>
        <p> </p>
        0
        1. Pour pouvoir distinguer les jours les uns des autres, tu peux soit leur donner des noms différents, soit les définir comme un seul tableau.

          Allons-y pour la seconde première possibilité.
          dans le formulaire, remplace name= 'jour' par name = 'jour[]' (pour tous les jours bien sûr)
          dans l'envoi de mail, il va falloir faire une boucle pour faire le tour des jours :

          remplace
          $texte.=$jour;
          par

          $texte := "jour(s) :"
          foreach ($jour as $jj) {
          $texte .= " ".$jj
          }

          et voilà
          0
          1. Bonjour Le Pere,
            Mon fichier traqitement3.php ne fonctionne pas, message erreur sur page web: 'Parse error: syntax error, unexpected T_FOREACH in /home/niceas5/public_html/infomation/traitement3.php on line 8'
            J ai essaye de modifier mais en vain.
            merci pour ton aide

            <html>
            <?php
            $plongee=htmlentities($_POST['plongee']);
            $cours=htmlentities($_POST['cours']);
            $texte.=htmlentities('plongee:'.$plongee);
            $texte.=htmlentities('cours:'.$cours);
            $texte.='jour(s) :'
            foreach($jour as $jj)
            {
            $texte.=''.$jj
            }
            $adresse="info@*****.com";
            $from="From: $prenom $nom<$email>\r\n";
            $from.="Reply-To: $prenom $nom <$email>\n";
            $from.="X-priority:3\n";
            $from.="MIME-Version: 1.0\r\n";
            $from.="Content-Type: text/html; charset+iso-8859-1\n";
            if (mail($adresse,$sujet,$texte,$from))
            echo("<center><font color=blue><br><br><br><h2>Formulaire envoyé ! Je vous répondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir à l'accueil</a></center>");
            else
            echo("<center><font color=red><br><br><br><h2>Problème à l'envoi du mail...désolé nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>");
            ?>
            0
            1. Bonjour olive

              Tu ne dors jamais ;-) ?

              'Parse error ... on line 8'
              En fait, l'erreur est sur la ligne précédente :
              $texte.='jour(s) :'
              il manque un ; à la fin
              $texte.='jour(s) :' ;

              les instructions PHP doivent être terminée par un ; (facultatif avant la balise fermante ?>)
              même chose d'ailleurs quelques lignes plus loin $texte.=''.$jj

              Je sais, c'est moi qui ai écrit l'erreur, mais quand même, c'est le B.A. BA du PHP.
              Essaye d'en apprendre quelques rudiments, nous gagnerons tous les deux beaucoup de temps.
              0