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

Langage PHP Discussion :

Erreur d'envoi de mails php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut Erreur d'envoi de mails php
    Bonsoir à tous,

    J'ai voulu faire un bien avec ce que j'avais pris sur le Net, mais, n'étant pas très branché en Php, je patauge un peu.

    J'ai fait un contact-form très simple (contact.html) et un fichier de vérification (send_email.php).
    Seulement, quand j'essaie d'envoyer un mail, voilà ce qui m'est retourné :
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/legtux.org/users/qi98/contact/send_email.php:26) in /var/www/legtux.org/users/qi98/contact/send_email.php on line 72
    C'est en anglais et je ne maîtrise pas cette langue. Si ce n'est que du mot à mot, et encore !

    Pour ne pas être envahi par les spams, ou éviter des envois indélicats, j'ai peut-être un peu trop forcé sur les contrôles !

    Je signale que c'est en ligne.

    A tout hasard, je vous mets les codes d'envoi et de vérification que j'ai pris ici http://a-pellegrini.developpez.com/tutoriels/php/mail/
    contact.html
    Code html : 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
    <form action="send_email.php" method="post">
    <p>  
    <label for="email">E-mail : *</label>  
    <input type="text" id="email" name="email" />  
    </p>
    <p>  
    <label for="sujet">Sujet  *:</label>  
    <input type="text" id="sujet" name="sujet" />  
    </p>  
    <p>  
    <label for="message">Message : *</label>  
    <textarea id="message" name="message" cols="40" rows="4"></textarea>  
    </p>
    <p>
    <input type="submit" name="envoyer" value="Envoyer" />
    <input type="reset" name="effacer" value="Effacer" />
    </p> 
    </form>


    Send_email.php
    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
    <?php
    /* Destinataire (votre adresse e-mail) */
    $to = 'qi98@legtux.org';
     
    /* Construction du message */
    $msg  = 'Bonjour,'."\r\n\r\n";
    $msg .= 'Ce mail a été envoyé depuis legtux.org par '.$expediteur."\r\n\r\n";
    $msg .= 'Voici le message qui vous est adressé :'."\r\n";
    $msg .= '***************************'."\r\n";
    $msg .= $message."\r\n";
    $msg .= '***************************'."\r\n";
     
    /* En-têtes de l'e-mail */
    /*$headers = 'From: '.$expediteur."\r\n\r\n";*/
     
    /* Envoi de l'e-mail */
    mail($to, $sujet, $msg, /*$headers*/);
    /*-------------------------------------------*/
    /*-----Détect les injections de Header ------*/
    /*-------------------------------------------*/
    /* Expression régulière permettant de vérifier qu'aucun en-tête n'est inséré dans nos champs */
    $regex_head = '/[\n\r]/';   
     
    /* On vérifie qu'il n'y a aucun header dans les champs */ 
    if (preg_match($regex_head, $expediteur) 
        || preg_match($regex_head, $sujet))
    {  
        $alert = 'En-têtes interdites dans les champs du formulaire'; 
    }
    else
    { 
        /* envoi de l'e-mail */
    }   
     
    /* On affiche l'erreur s'il y en a une */ 
    if (!empty($alert))
    {
        echo $alert;
    }
    /*-------------------------------------------*/
    /*--------Détect si c'est un robot------*/
    /*-------------------------------------------*/
    /* Si le formulaire n'est pas posté de notre site on renvoie vers la page d'accueil */
    if ($_SERVER['HTTP_REFERER'] != 'http://qi98.legtux.org/send_email.php')
    {  
        header('Location:http://qi98.legtux.org/'); 
    } 
    else
    {  
        /* envoi de l'e-mail */
    }
    /*-------------------------------------------*/
    /*-------Détect les msg vides----------*/
    /*-------------------------------------------*/
    if (empty($expediteur) 
        || empty($sujet) 
        || empty($message))
    {  
        $alert = 'Tous les champs doivent être renseignés !';
    } 
    else
    {  
        /* envoi de l'e-mail */
    }   
     
    /* On affiche l'erreur s'il y en a une */ 
    if (!empty($alert))
    {
        echo $alert;
    }
    /*-------------------------------------------*/
    /*----- Détect les espaces -------------*/
    /*-------------------------------------------*/
    /* Récupération des valeurs des champs du formulaire */
    if (get_magic_quotes_gpc())
    {  
        $expediteur = stripslashes(trim($_POST['email'])); 
        $sujet = stripslashes(trim($_POST['sujet'])); 
        $message = stripslashes(trim($_POST['message'])); 
    } 
    else
    {  
        $expediteur = trim($_POST['email']); 
        $sujet = trim($_POST['sujet']); 
        $message = trim($_POST['message']);
    }
    ?>
    Merci par avance de votre aide.

  2. #2
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Tu ne peux pas utiliser la fonction header si des données ont déjà été envoyé dans le tampon de sortie de php.

    C'est a dire que tu ne peux pas utiliser header si tu as déjà envoyé du texte peu importe la façon dont le texte est envoyé :
    - si avant header tu a fais un echo / print_r / ...
    - si tu as eu une erreur php qui affiche un warning
    - si tu as ecrit du code en dehors des balises php

    et cela ne se limite pas au fichier php en cours.
    Si ton fichier php est inclus par une autre page qui a déjà fait un echo. ça ne marchera pas non plus.

    Plus de détails dans la faq :
    http://php.developpez.com/faq/?page=...s_already_sent

  3. #3
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    bonjour,
    Merci de ces explications et je vais essayer tout a, on verra bien !

Discussions similaires

  1. [WS 2008 R2] Page erreur et envoi de mail
    Par pmoury06 dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 30/03/2011, 17h29
  2. [Continuum] Erreur d'envoie de mail
    Par dossav dans le forum Intégration Continue
    Réponses: 8
    Dernier message: 26/06/2009, 17h13
  3. [MySQL] Tableau et envoi e-mail PHP
    Par creative69 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/10/2008, 12h03
  4. [Mail] Erreur d'envoi de mail en local
    Par tonton54 dans le forum Langage
    Réponses: 2
    Dernier message: 28/10/2008, 15h18
  5. [Mail] envoi de mail php
    Par nicordi dans le forum Langage
    Réponses: 16
    Dernier message: 31/10/2006, 00h00

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