Erreur lors de l'envoie d'un formulaire par mail

Erreur lors de l'envoie d'un formulaire par mail - PHP - Programmation

Marsh Posté le 11-05-2010 à 16:29:30    

Bonjour,
J'ai ajouter un formulaire à envoyer sur mon e-mail dans mon site et lorsque je clique sur envoyer j'ai se message d'erreur,
pourtant je reçoit bien le mail.

Code :
  1. Warning: trim() expects parameter 1 to be string, array given in C:\wamp\www\uikl\traitement.php on line 31
  2. Notice: Undefined index: email in C:\wamp\www\uikl\traitement.php on line 45
  3. Notice: Undefined index: email in C:\wamp\www\uikl\traitement.php on line 46
  4. Votre demande a bien �t� prise en compte.


 
J'ai bien modifier le fichier php.ini pour pouvoir recevoir les mails.
 
Voici le code du formulaire:

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2.                        "http://www.w3.org/TR/REC-html40/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <title>Mon formulaire.</title>
  7. </head>
  8. <body>
  9. <form method="post" action="traitement.php">
  10. <p class="titre">Coordonnées</p>
  11. <fieldset id="coordonnees">
  12.   <p id="civilite"><label>Civilité : </label>
  13.     <input type="radio" name="civilite" value="M." />M.
  14.     <input type="radio" name="civilite" value="Mlle" />Mlle
  15.     <input type="radio" name="civilite" value="Mme" />Mme
  16.   </p>
  17.   <label>Nom : </label>
  18.     <input type="text" name="nom" size="30" /><br />
  19.   <label>Adresse : </label>
  20.     <input type="text" name="adresse" size="30" /><br />
  21.   <label>Code postal : </label>
  22.     <input type="text" name="codepostal" size="30" /><br />
  23.   <label>Ville : </label>
  24.     <input type="text" name="ville" size="30" /><br />
  25.   <label>Pays : </label>
  26.     <select name="pays">
  27.       <option value="france">France</option>
  28.       <option value="belgique">Belgique</option>
  29.       <option value="suisse">Suisse</option>
  30.     </select>
  31.   <p id="interets"><label>Centres d'intérêts : </label>
  32.     <input type="checkbox" name="interets[]" value="sport" />Sport
  33.     <input type="checkbox" name="interets[]" value="cinema" />Cinéma<br />
  34.     <input type="checkbox" name="interets[]" value="internet" />Internet
  35.     <input type="checkbox" name="interets[]" value="voyages" />Voyages
  36.   </p>
  37. </fieldset>
  38. <p class="titre">Message</p>
  39. <fieldset id="message">
  40.   <textarea name="comments" rows="5" cols="40"></textarea>
  41. </fieldset>
  42. <p id="buttons">
  43.   <input type="submit" value="Envoyer" />
  44.   <input type="reset" value="Recommencer" />
  45. </p>
  46. </form>
  47. </body>
  48. </html>


 
Et voici le code qui traite l'envoie:

Code :
  1. <?php
  2. $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
  3. $msg_ok = "Votre demande a bien été prise en compte.";
  4. $message = $msg_erreur;
  5. define('MAIL_DESTINATAIRE','webmaster@mon-domaine');
  6. define('MAIL_SUJET','Sujet du formulaire!');
  7. if (empty($_POST['civilite']))
  8. $message .= "Votre civilité<br/>";
  9. if (empty($_POST['nom']))
  10. $message .= "Votre nom<br/>";
  11. if (empty($_POST['adresse']))
  12. $message .= "Votre adresse<br/>";
  13. if (empty($_POST['codepostal']))
  14. $message .= "Votre code postal<br/>";
  15. if (empty($_POST['ville']))
  16. $message .= "Votre ville<br/>";
  17. if (empty($_POST['comments']))
  18. $message .= "Votre message<br/>";
  19. if (strlen($message) > strlen($msg_erreur)) {
  20.   echo $message;
  21. } else {
  22. foreach($_POST as $index => $valeur) {
  23. $$index = stripslashes(trim($valeur));
  24. }
  25. $interets = $_POST['interets'];
  26. $sqlinterets = '';
  27. for ($i=0; $i<count($interets); $i++)
  28. {
  29. $sqlinterets .= $interets[$i];
  30. $sqlinterets .= ', ';
  31. }
  32. $mail_entete = "MIME-Version: 1.0\r\n";
  33. $mail_entete .= "From: {$_POST['nom']} "
  34.              ."<{$_POST['email']}>\r\n";
  35. $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
  36. $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
  37. $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
  38. $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
  39. $mail_corps = "Message de : $civilite $nom\n";
  40. $mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";
  41. $mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
  42. $mail_corps .= $comments;
  43. if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
  44.   echo $msg_ok;
  45. } else {
  46.   echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
  47. }
  48. }
  49. ?>


 
Si quelqu'un pourrait me dire pourquoi j'ai cette erreur et m'aider à la corriger sa ne serait pas de refus :)
Merci d'avance,

Reply

Marsh Posté le 11-05-2010 à 16:29:30   

Reply

Marsh Posté le 11-05-2010 à 17:00:24    

t'as un $ de trop ligne 28 et comme interets est une liste tu peux pas lui faire un trim comme ca

Reply

Marsh Posté le 11-05-2010 à 17:17:50    

Merci d'avoir répondu mais je connais pas trop le php encore.
Je prends actuellement des cours, enfaite j'ai pris les codes sur un site donc si tu pouvais m'aider sa serait cool,
puis par la suite je vais modifier se code pour que le formulaire corresponde à se que je veux.

Reply

Marsh Posté le 11-05-2010 à 21:17:38    

C'est bon j'ai trouvé, ça marche nikel par contre lorsque je suis dans ma boîte mail et que j'ouvre le message on me dit:
 

Ce message a été bloqué par mesure de sécurité. Ouvrir le message.


 
Pourquoi? et comment faire pour qu'il ne s'affiche plus car c'est assé embêtant.
Merci,

Reply

Marsh Posté le 12-05-2010 à 18:38:34    

up svp

Reply

Marsh Posté le 17-05-2010 à 13:17:43    

svp une réponse ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed