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 :

Fonction mail() : Subject dynamique qui n'est pas respecté


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 4
    Par défaut Fonction mail() : Subject dynamique qui n'est pas respecté
    Bonjour à tous, première discussion sur un forum PHP pour moi.
    Je rencontre un problème de variable qui ne s'affiche pas correctement dans le sujet d'un email envoyé après l'enregistrement d'un formulaire.

    Je vais essayer d'être clair et bref.
    J'ai fait un formulaire d'enregistrement à un service. La base de données (MySQL) se rempli correctement et je voudrais envoyer un email de confirmation contenant une référence qui correspond à l'ID de la ligne où le informations sont enregistrées dans la base de données.

    J'extrais bien l'ID que je mets dans une variable, et je place cette variable dans le "sujet" ET dans le "message" de la fonction mail(). Mon problème est que ça fonctionne au premier essai, mais au deuxième et aux suivants, le sujet montre toujours le même ID initial alors que le message, lui, contient le bon ID.
    Comme si le premier sujet était enregistré en mémoire cache quelque part.

    dans mon code, j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
    $last_id = $db_handle->lastid($query);
     
    $conf_subj = 'Vos produits sont maintenant enregistrés';
     
    $conf_msg = '<html><body>Votre enregistrement porte la référence [#'.$last_id.']</body></html>';
     
    $conf_headers = "From: MC Care <care@mariescorner.com>\r\n";
    $conf_headers .= "Reply-To: care@mariescorner.com\r\n";
    $conf_headers .= "MIME-Version: 1.0\r\n";
    $conf_headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
     
    mail( $_POST['email'], '[Registration #'.$last_id.'] '.$conf_subj, $conf_msg, $conf_headers );
    Comme expliqué, le premier test me donne un email avec :
    Sujet : [Registration #1] Vos produits sont maintenant enregistrés
    Message : Votre enregistrement porte la référence [#1]

    un second test me donne :
    Sujet : [Registration #1] Vos produits sont maintenant enregistrés
    Message : Votre enregistrement porte la référence [#2]

    un troisième test me donne :
    Sujet : [Registration #1] Vos produits sont maintenant enregistrés
    Message : Votre enregistrement porte la référence [#3]

    Je ne comprend pas, c'est la même variableutilisée de la même manière dans le sujet ou le message et pourtant quand on reçoit l'email, ça n'apparait pas correctement.

    Comment dois-je faire?

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 674
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 674
    Par défaut
    essayez de mettre directement $last_id à la place $conf_msg dans l'appel de "mail(..." pour voir si vous avez le même résultat.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 4
    Par défaut
    Je l'ai fait, mais le résultat reste différent

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Que donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ...
    $last_id = $db_handle->lastid($query);
     
    $conf_subj = 'Vos produits sont maintenant enregistrés';
    $conf_title = '[Registration #'.$last_id.'] '.$conf_subj;
    $conf_msg = '<html><body>Votre enregistrement porte la référence [#'.$last_id.']</body></html>';
     
    $conf_headers = "From: MC Care <care@mariescorner.com>\r\n";
    $conf_headers .= "Reply-To: care@mariescorner.com\r\n";
    $conf_headers .= "MIME-Version: 1.0\r\n";
    $conf_headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
     
    mail( $_POST['email'], $conf_title, $conf_msg, $conf_headers );
    ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 4
    Par défaut
    Rebonjour jreaux62,
    C'est ce que j'avais fait au départ (mettre la variable de l'ID dans une variable, idem pour le message), mais rien n'y fait. Dans chaque cas, le sujet ne prend pas la dernière version de la variable. C'est vraiment comme si le sujet était en cache.

  6. #6
    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
    Bizarre, vous avez dit bizarre ? Comme c'est bizarre

    En debug de bourrin : si tu fais un var_dump des variables avant l'envoi du mail dans la version de jreaux, ça donne quoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    $last_id = $db_handle->lastid($query);
     
    $conf_subj = 'Vos produits sont maintenant enregistrés';
    $conf_title = '[Registration #'.$last_id.'] '.$conf_subj;
    $conf_msg = '<html><body>Votre enregistrement porte la référence [#'.$last_id.']</body></html>';
    var_dump($last_id, $conf_title, $conf_msg)
    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. Réponses: 0
    Dernier message: 23/03/2013, 10h10
  2. Hauteur de cellules qui n'est pas respectée
    Par petitours dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 07/11/2011, 13h58
  3. Charger dynamiquement une classe qui n'est pas dans un jar
    Par rastakouair dans le forum Langage
    Réponses: 12
    Dernier message: 17/12/2007, 19h22
  4. Fonction qui n'est pas reconnue
    Par petitours dans le forum IHM
    Réponses: 4
    Dernier message: 17/08/2007, 15h28
  5. [Mail] envoyer un mail qui n'est pas anonyme
    Par mzt.insat dans le forum Langage
    Réponses: 21
    Dernier message: 10/12/2005, 09h16

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