problème de mail incomplet

Discussion dans 'Discussions Générales' démarrée par ladylou, Mai 22, 2014.

  1. ladylou

    ladylou New Member

    Bonjour à tous,

    J'ignore si je trouverai ma réponse ici et si le problème concerne l'hébergement mais je me lance sait-on jamais...
    Cela fait plusieurs jours que je reçois des mails (via le formulaire de contact de mon site) qui sont incomplets. Je m'explique : le champs du nom et de l'adresse mails sont bien remplies et les informations me parviennent bien, par contre le champs du message reste vide... rien, pas une lettre ni une ponctuation...au début je pensais que cela était une mauvaise manipulation de mes visiteurs (bien qu'en principe un champs incomplet ne fait pas partir le message...) et puis comme cela s'est répété plusieurs fois, j'ai commencé à chercher d'où pouvait venir le problème sachant que je n'ai rien changé au fichier php ni au fichier html concernant ce formulaire.
    J'ai donc commencé par m'envoyer quelques messages (via le formulaire de contact de mon site) certains me sont arrivés et d'autre non...jusqu'à ce que je m'aperçoive que tous les messages contenant un "ç" m'arrivaient vierge....le problème viendrait donc de cette lettre ou plus exactement du cedille puisque les autres messages (contenant un c) arrivent intacts. est ce que quelqu'un pourrait me donner un petit tuyaux pour me dire d'où vient le problème subitement (cela fait deux ans que j'utilisais mon formulaire sans ,aucun problème ). Merci d'avance de votre aide.
     
  2. lxwfr

    lxwfr New Member

    vous avez le script php?
    vous pouvez les remplacer le "ç" en code HEX html en utilisant la function st_replace($string) ou tous simplement htmlentries($string) en UTF-8
     
  3. ladylou

    ladylou New Member

    Merci de votre intervention et de votre aide. Le code php est sans doute dépassé mais c'est le seul que j'ai compris lorsque j'ai fait mon site...et encore, il y a des points que je ne maitrise pas dans ce code, j'ai essayé de modifier charset=utf-8 mais dans ce cas je ne reçois plus du tout les mails.
    Voici le code, merci de votre tolérance je ne suis pas une pro.

    <?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 omis de préciser 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 semble incorrect ou incomplet</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>Quel est votre message ?</p>';
    }
    }

    if (!isset($_POST['captcha'])) {
    $nombreErreur++;
    $erreur6 = '<p>Il y a un problème avec la variable "captcha".</p>';
    } else {
    if ($_POST['captcha']!=chat) {
    $nombreErreur++;
    $erreur7 = '<p>Désolé, la réponse n\'est pas correcte.</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']);
    $chats = htmlentities($_POST['chats']);
    $message = htmlentities($_POST['message']);

    // Variables concernant l'email
    $destinataire = 'monadresse@gmail.com'; // Adresse email du webmaster
    $sujet = 'Titre du message'; // Titre de l'email
    $contenu = '<html><head><title>Titre du message</title></head><body>';
    $contenu .= '<p>Bonjour, un message vous a été envoyé à partir du formulaire de contact de votre site.</p>';
    $contenu .= '<p><strong>Nom</strong>: '.$nom.'</p>';
    $contenu .= '<p><strong>Email</strong>: '.$email.'</p>';
    $contenu .= '<p><strong>Chats</strong>: '.$chats.'</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

    header("Location: pagederemerciements.html"); // Afficher un message pour indiquer que le message a été envoyé
    } else { // S'il y a au moins une erreur
    echo '<div style="border:1px solid #ff0000; padding:5px;">';
    echo '<p style="color:#ff0000;">Désolé, il y a '.$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><p><a href="http://www.pensionchatdu83.fr/photo.html">Réessayez</a></p>';
    }
    }
    ?>
     
  4. lxwfr

    lxwfr New Member

    Il a des docs pour comprendre tous, si vous avez envie d'apprendre sur php.net...



    Pas testé je fais vite fait, pas assez le temps pour gérer mes site et famille "comme tous le monde", désoler
    Derien

    Edit 27/05/2014 à 06h59
    Je trouve ça bizarre, j'ai fais un teste sur votre site ça fonctionne!!! ça a laire fonctionner parfaitement. Ne changé rien..
     
    Dernière édition: Mai 27, 2014
  5. ladylou

    ladylou New Member

    Merci lxwfr, je vais essayer de comprendre et faire quelques tests supplémentaires, c'est déjà gentil d'avoir répondu.
     

Partager cette page