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 :

[Mail] Changer la valeur par défaut de l'expéditeur du mail


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Mail] Changer la valeur par défaut de l'expéditeur du mail
    Bonjour à tous
    je suis vraiment débutant en PHP, j'ai mis en place un script que j'ai récuperé, une inscription à un formulaire. avec une pop-up en html, et un liens vers une page php.
    le formulaire marche plutôt bien à part l'envoi du mail, en gros quand je test l'inscription, tout ce passe bien, mais quand je regarde les contact, l'expediteur est toujours anonymous@leserveurdelhebergeur.com, les champs nom, prenom, et message marche bien sauf l'entrée du mail.....
    cela dois vous paraitre completement débile, mais je pense que le problem viens du serveur? et j'aurais bien besoin de votre aide.

    je vous mets le code pour le html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <body>
    <form method="POST" action="inscription.php" 
    name="monform"> Nom : <input type="text" name="nom">
    <br /> Prenom : <input type="text" name="prenom">
    <br /> Mail : <input type="text" name="mail">
    <br /> <textarea name="commentaire">Entrer ici votre message</textarea> 
    <input type="submit" value="Envoyer"> </form>
    </body>
    </html>
    et le code 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
    <?php 
    $formMail = $_POST['mail'];
    $formNom = $_POST['nom'];
    $formPrenom = $_POST['prenom'];
    $formCommentaire = $_POST['commentaire'];
    // pour éviter des erreurs de Notice dans le cas ou le champs est resté vide, on aurait pu mettre !
    // $formMail = (!isset($_POST['mail']))?$_POST['mail']:'none';
    // Dans le cas ou les variables sont destiné à allimenter un base de donné il faut toujours valider les valeurs pour éviter les problèmes d'injection ! cf Google
    // En règle général on traite les variables avec les fonctions htmlentities, mysql_escape_string(),addslash() 
    // Dans l'exemple on va juste vérifier que le nom, le prenom et le mail soit pas vide.
    if(!empty($formMail) && !empty($formPrenom) && !empty($formNom) ){
     //ok pas vide //on convertie les caractètres HTML du commentaire
      $formCommentaire = htmlentities($formCommentaire);
     
      //mise en forme du mail
      $message = "$formNom $formPrenom vous contact via votre formulaire.\n \n message : \n $formCommentaire";
      // on envois le mail
      //<a href="http://fr.php.net/manual/fr/ref.mail.php" target="_blank">http://fr.php.net/manual/fr/ref.mail.php</a> 
      //bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] ) 
      // ATTENTION en général vous n'avez pas de serveur de mail sur votre machine ! 
      // à tester sur le net directment en cas de problème avec la fonction mail 
     if( mail('contact@handioasis.com','sujet',$message) ){
     echo 'les informations ont bien été envoyé!';
     }
      else{
     echo 'une erreur est survenu lors de l\'envoi du message';
     }
    }
     else{ 
     //il y a des champs vide 
     echo 'merci de remplir les champs nom, prenom et mail'; 
     }
    ?> 
     
     
     
     
     
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    </head>
     
    <body>
    </body>
    </html>

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    bonjour,

    Ce comportement est tout à fait normal.

    Pour avoir un expéditeur différent, il faut passer en paramètre un quatrième argument à la fonction mail() de php.

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $header = "From: contact@handioasis.fr\n";
    mail('contact@handioasis.com','sujet',$message, $header);
    ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut c'est pas facile tout les jours
    bonjour
    j'ai essayé de faire ce que tu m'as dit, mais mon niveau est tellement niveau nul,que je suis pas sur d'avoir bien mis au bonne endroit?
    donc je l'ai placé la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Code : 
      //mise en forme du mail
      $message = "$formNom $formPrenom vous contact via votre formulaire.\n \n message : \n $formCommentaire";
      $header = "From: <a href="mailto:contact@handioasis.com">contact@handioasis.com</a>\n";
      mail('contact@handioasis.com','sujet',$message, $header);
     if( mail('contact@handioasis.com','sujet',$message) ){
     echo 'les informations ont bien été envoyé!';
     }
    et maintenant il m'envoie deux mails, un de anonymouse@serveur.com et un autre mail provenant de contac@handioasis.com

    je ce que j'aimerai avoir comme info, c'est le mail de l'expéditeur?
    j'ai peut etre mal placé ton code?


    xoom

  4. #4
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    re,

    il fallait simplement remplacer celui placé dans le if:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     if( mail('contact@handioasis.com','sujet',$message, $header) ){


    ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    bonjour sharrascript
    j'ai bien essayer ton code, mais il m'envoie toujours un mail de handioasis.com
    alors que j'ai fait le test dans le formmail, avec xoom@jetest.com
    j'aimerai avoir dans la newsletter, le mail que le client entre( le sien)?
    là il envoie un mail de contact@handioasis.com à contact@handioasis.com
    je te remets mon code avec le quatrieme argument dont tu m'avais parler.

    la page d'inscription en html avec comme entrées :
    nom :
    prénom :
    mail :
    message :
    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>newsletter</title>
    </head>
     
    <body>
    <form method="POST" action="inscription.php" 
    name="monform"> Nom : <input type="text" name="nom">
    <br /> Prenom : <input type="text" name="prenom">
    <br /> Mail : <input type="text" name="mail">
    <br /> <textarea name="commentaire">Entrer ici votre message</textarea> 
    <input type="submit" value="Envoyer"> </form>
    </body>
    </html>
    et la page inscription.php modifié :
    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
     
    <?php // récupération des variables
    // donné un autre nom au variable pour évité les problèmes avec Register Global à ON
    $formMail = $_POST['mail'];
    $formNom = $_POST['nom'];
    $formPrenom = $_POST['prenom'];
    $formCommentaire = $_POST['commentaire'];
     
    if(!empty($formMail) && !empty($formPrenom) && !empty($formNom) ){
     
      $formCommentaire = htmlentities($formCommentaire);
     
     
      $message = "$formNom $formPrenom vous contact via votre formulaire.\n \n message : \n $formCommentaire";
      $header = "From: contact@handioasis.com\n";
     if( mail('contact@handioasis.com','sujet',$message, $header) ){
     echo 'les informations ont bien été envoyé!';
     }
      else{
     echo 'une erreur est survenu lors de l\'envoi du message';
     }
    }
     else{ 
      echo 'merci de remplir les champs nom, prenom et mail'; 
     }
    ?>
    j'ai peu etre fait une erreur, ou faut -il absolement une base de donnée?
    car je veux surtout récuperer le mail de l'expéditeur?
    à bienôt xoom

  6. #6
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    re,

    c'est normal, car tu ne te sert pas du renvoi du formulaire, voici le code juste:


    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
    <?php // récupération des variables
    // donné un autre nom au variable pour évité les problèmes avec Register Global à ON
    $formMail = $_POST['mail'];
    $formNom = $_POST['nom'];
    $formPrenom = $_POST['prenom'];
    $formCommentaire = $_POST['commentaire'];
     
    if(!empty($formMail) && !empty($formPrenom) && !empty($formNom) ){
     
      $formCommentaire = htmlentities($formCommentaire);
     
     
      $message = "$formNom $formPrenom vous contact via votre formulaire.\n \n message : \n $formCommentaire";
      $header = "From: $formMail\n";
     if( mail('contact@handioasis.com','sujet',$message, $header) ){
     echo 'les informations ont bien été envoyé!';
     }
      else{
     echo 'une erreur est survenu lors de l\'envoi du message';
     }
    }
     else{ 
      echo 'merci de remplir les champs nom, prenom et mail'; 
     }
    ?>
    Voilà ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    merci beaucoup sharrascript.
    ça marche nickel, c'est vraiment super.
    Encore merci de ton temps, et je te souhaite une bonne journée.
    xoom

  8. #8
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Pas de soucis xoom.moox,

    Bonne continuation

    ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL Server 2008] changer encodage d'une valeur par défaut
    Par Idredeguerre dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 02/08/2012, 17h19
  2. Changer la valeur par défaut des namespaces
    Par Orphey dans le forum Visual Studio
    Réponses: 8
    Dernier message: 02/12/2010, 12h28
  3. Réponses: 3
    Dernier message: 07/05/2010, 10h35
  4. changer de valeur par défaut
    Par sillycoder dans le forum SQL
    Réponses: 4
    Dernier message: 30/04/2007, 20h33
  5. valeur par défaut à changer
    Par djulien19 dans le forum IHM
    Réponses: 2
    Dernier message: 10/03/2007, 14h05

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