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 :

Pixel de suivi des mails


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut Pixel de suivi des mails
    Bonjour,
    je n'arrive pas à configurer le pixel pour le suivi des mails
    je vous met le code qui concerne le pixel, d'abord le code du pixel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message2.="<a href='$mon_site/desinscriptionautorepondeur.php?mail=$mail2'>Désinscription</a><img src='$mon_site/pixel.php?email=$recipient_email' width='1' height='1' style='display:none;'>
    ensuite j'aimerai récupérer ce pixel et remplir une table avec ce code dans le fichier pixel.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
    <?php
    // Récupérer les données de l'email ouvert
    $recipient_email = $_GET['email'];
    $ip_address = $_SERVER['REMOTE_ADDR'];
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    $date = date("Y-m-d");
     
    // Insérer les données dans la base de données
    $sql = "INSERT INTO suivimails (date, email, ip_addresse, user_agent) VALUES (?, ?, ?, ?)";
    $req = $bdd->prepare($sql);
    $req -> execute(array($date,$recipient_email,$ip_address,$user_agent));
     
    // Retourner une image transparente pour que le navigateur ne signale pas d'erreur
    header('Content-Type: image/png');
    echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/w8AAwAB/YPiH8K9AAAAABJRU5ErkJggg==');
    exit;
    ?>
    Mais ca ne marche pas il ne remplis pas la table ?
    merci de votre aide

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Le exit() et le ?> en fin de script PHP ne servent à rien. C'est même une bonne pratique de ne pas utiliser ?> en fin de script.

    Avant tout es-tu certain que le mouchard est bien appelé ? Généralement ils sont bloqués par les clients mails.

    Et je ne sais pas si c'est volontaire, mais ton script ne montre pas comment est initialisé $bdd. Le script donne une erreur ou pas quand tu y accèdes directement ?

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut
    Merci pour la réponse
    le $bdd est initialisé au début du fichier c'est pour les accès à ma base de donnée, mais ca fonctionne ca

  4. #4
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut
    tu as raison le $bdd n'était pas déclaré, je l'ai déclaré mais ca ne marche pas encore ?

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par marcsteph Voir le message
    je l'ai déclaré mais ca ne marche pas encore ?
    Je ne comprends pas ta question et tu n'as pas répondu aux miennes

    [...] es-tu certain que le mouchard est bien appelé ? Généralement ils sont bloqués par les clients mails.
    [...] Le script donne une erreur ou pas quand tu y accèdes directement ?

  6. #6
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Par défaut Ca fonctionne
    excuse-moi oui j'ai modifié le fichier pixel.php et appellé seul il fonctionne bien maintenant mais je me suis un peu égaré dans le code, je te montre ce qu'il y a maintenant je crois que j'ai pas la bonne logique ?
    il me retourne toute les données en base sauf pour le clique il met toujours 0 encore à modifier
    seul bug c'est qu'il me fait un update même si un mail est ouvert pour la première fois alors qu'il devrait faire un insert ?
    dans le code je met un numéro unique quand le fichier pixel.php mais il change à chaque appel du fichier il faudrait en premier je pense tester si le mail a déjà été ouvert sinon mettre un numéro unique pour chaque mail et ne plus le bouger ainsi je pourrai tester si en base il y a déjà eu un mail ouvert et faire un update et si un mail est ouvert pour la première fois lui assigner un numéro unique et tester la base si il existe et si non faire un insert.
    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
    <?php
    session_start();
    include 'headerauto.php';
    $bdd=bdd();
    // Récupérer les données de l'email ouvert
    $pixelId = $_GET['pixel_id'] ?? '0'; // Récupérer l'identifiant du pixel
    $pixelClicked = $_SERVER['PIXEL_CLICKED'] ?? '0'; // Récupérer le statut du lien cliqué (1 ou 0)
    $recipient_email = $_GET['email'] ?? '';
    $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? '';
    $ip_address = $_SERVER['REMOTE_ADDR'] ?? '';
    $hash = sha1($recipient_email . time());
    $date = date("Y-m-d");
    // Vérifier si l'email a déjà été ouvert
    $sql_select = "SELECT ouverture FROM suivimails WHERE email = ?";
    $req_select = $bdd->prepare($sql_select);
    $req_select->execute([$recipient_email]);
    $result = $req_select->fetch(PDO::FETCH_ASSOC);
     
    if ($result) {
        // L'email existe déjà dans la base de données, mettre à jour le compteur d'ouvertures
        $nb_ouvertures = $result['ouverture'] + 1;
        $sql_update = "UPDATE suivimails SET ouverture = ? WHERE email = ?";
        $req_update = $bdd->prepare($sql_update);
        $req_update->execute([$nb_ouvertures, $recipient_email]);
    } else {
        // L'email n'existe pas dans la base de données, ajouter une nouvelle entrée
        $nb_ouvertures = 1;
        $sql_insert = "INSERT INTO suivimails (date, email, ip_addresse, user_agent, clique, ouverture, identifiant_mail) VALUES (?, ?, ?, ?, ?, ?, ?)";
        $req_insert = $bdd->prepare($sql_insert);
        $req_insert->execute([$date, $recipient_email, $ip_address, $user_agent, $pixelClicked, $nb_ouvertures,$hash]);
    }

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

Discussions similaires

  1. gestion/suivi des mails gratuit pour linux
    Par morocoboy dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 21/11/2009, 13h00
  2. suivi des mails depuis reports
    Par c.langlet dans le forum Reports
    Réponses: 0
    Dernier message: 07/01/2009, 14h32
  3. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 15h28
  4. Scanner des mails et récupérer le fichier attaché
    Par delphim dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/04/2003, 09h35

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