IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Contenu d'un message vide fonction mail


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 9
    Par défaut Contenu d'un message vide fonction mail
    Bonsoir à tous,

    J'ai un souci avec la fonction mail hébergé sur un petit site sans prétention à partir d'un formulaire tout bête avec nom, tel, mail et message

    En effet, je reçois les messages généralement quand ceux ci sont petits (ex : salut tu vas bien ,)..

    Par contre dès que j'ai un pavé, rien ne s'affiche. Par contre je reçois bien le nom, tel, et mail du contact.
    Edit : apparement le contenu du message ne passe pas s'il y a des accents dans les champs de formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    <?php
    // S'il y des données de postées
    if ($_SERVER['REQUEST_METHOD']=='POST') {
      // Code PHP pour traiter l'envoi de l'email
     
      $nombreErreur = 0; // Variable qui compte le nombre d'erreur
     
      // Définit toutes les erreurs possibles
      if (!isset($_POST['email'])) { // Si la variable "email" du formulaire n'existe pas (il y a un problème)
        $nombreErreur++; // On incrémente la variable qui compte les erreurs
        $erreur1 = '<p>Il y a un problème avec la variable "email".</p>';
      } else { // Sinon, cela signifie que la variable existe (c'est normal)
        if (empty($_POST['email'])) { // Si la variable est vide
          $nombreErreur++; // On incrémente la variable qui compte les erreurs
          $erreur2 = '<p>Vous avez oublié de donner votre email.</p>';
        } else {
          if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $nombreErreur++; // On incrémente la variable qui compte les erreurs
            $erreur3 = '<p>Cet email ne ressemble pas un email.</p>';
          }
        }
      }
     
      if (!isset($_POST['message'])) {
        $nombreErreur++;
        $erreur4 = '<p>Il y a un problème avec la variable "message".</p>';
      } else {
        if (empty($_POST['message'])) {
          $nombreErreur++;
          $erreur5 = '<p>Vous avez oublié de donner un message.</p>';
        }
      }
     
      if (!isset($_POST['captcha'])) {
        $nombreErreur++;
        $erreur6 = '<p>Il y a un problème avec la variable "captcha".</p>';
      } else {
        if ($_POST['captcha']!=2912) {
          $nombreErreur++;
          $erreur7 = '<p>Désolé, le captcha anti-spam est erroné.</p>';
        }
      }
     
      if ($nombreErreur==0) { // S'il n'y a pas d'erreur
        // Récupération des variables et sécurisation des données
        $nom = htmlentities($_POST['nom']); // htmlentities() convertit des caractères "spéciaux" en équivalent HTML
        $email = htmlentities($_POST['email']);
    $tel = htmlentities($_POST['tel']);
        $message = htmlentities($_POST['message']);
    	$message = wordwrap($message, 70, "<br />\n");
    	$message = str_replace("!", "\n!", $message);
        $message = str_replace("\n.", "\n..", $message);
     
        // Variables concernant l'email
        $destinataire = 'monmail@gmail.com'; // Adresse email du webmaster
        $sujet = 'Quelqu'un souhaite vous contacter '; // Titre de l'email
        $contenu = '<html><head><title>Titre du message</title></head><body>';
        $contenu .= '<p>Bonjour, vous avez reçu un message à partir du site </p>';
        $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
        $contenu .= '<p><strong>Email</strong>: '.$email.'</p>';
        $contenu .= '<p><strong>Tel : </strong>: '.$tel.'</p>';
        $contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
        $contenu .= '</body></html>'; // Contenu du message de l'email
     
        // Pour envoyer un email HTML, l'en-tête Content-type doit être défini
        $headers = 'MIME-Version: 1.0'."\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
     
        @mail($destinataire, $sujet, $contenu, $headers); // Fonction principale qui envoi l'email
     
        echo '<h2>Message envoyé!</h2>'; // Afficher un message pour indiquer que le message a été envoyé
     
      } else { // S'il y a un moins une erreur
        echo '<div style="border:1px solid #ff0000; padding:5px;">';
        echo '<p style="color:#ff0000;">Désolé, il y a eu '.$nombreErreur.' erreur(s). Voici le détail des erreurs:</p>';
        if (isset($erreur1)) echo '<p>'.$erreur1.'</p>';
        if (isset($erreur2)) echo '<p>'.$erreur2.'</p>';
        if (isset($erreur3)) echo '<p>'.$erreur3.'</p>';
        if (isset($erreur4)) echo '<p>'.$erreur4.'</p>';
        if (isset($erreur5)) echo '<p>'.$erreur5.'</p>';
    	if (isset($erreur6)) echo '<p>'.$erreur6.'</p>';
    	if (isset($erreur7)) echo '<p>'.$erreur7.'</p>';
        echo '</div>';
      }
    }
    ?>
     
      <form method="post" action="<?php echo strip_tags($_SERVER['REQUEST_URI']); ?>">
        <p>Votre nom et prénom: <input type="text" name="nom" size="30" /></p>
        <p>Votre email: <span style="color:#ff0000;">*</span>: <input type="text" name="email" size="30" /></p>
        <p>Votre téléphone: <span style="color:#ff0000;">*</span>: <input type="text" name="tel" size="15" /></p>
        <p>Message <span style="color:#ff0000;">*</span>:</p>
        <textarea name="message" cols="60" rows="10"></textarea>
        <p>Anti-spam - Recopier le code suivant : : <img src="structure/spam2.png" /><span style="color:#ff0000;">*</span>: <input type="text" name="captcha" size="2" /></p>
        <p><input type="submit" name="submit" value="Envoyer" /></p>
      </form>

    Hors cela ne fonctionne pas, et je galère à comprendre pourquoi.

    Une idée ?

    Merci par avance !

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si tu as un problème avec les accents, c'est peut-être un problème d'encodage. D'après cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
    Tu utilises un encodage ISO-8859-1. Est-ce que c'est également le cas de ta page html et ton script PHP ?
    Personnellement, je te recommande de tout passer en UTF-8.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Fonction mail() : Contenu du message dans un fichier txt
    Par nico_loin dans le forum Langage
    Réponses: 7
    Dernier message: 21/01/2013, 10h12
  2. Réponses: 2
    Dernier message: 08/04/2008, 16h29
  3. [Mail] Fonction mail avec message d'entête
    Par lodan dans le forum Langage
    Réponses: 4
    Dernier message: 07/11/2006, 17h28
  4. Réponses: 13
    Dernier message: 03/07/2006, 12h16
  5. message de la fonction mail()
    Par chouchouboy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 29/06/2006, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo