Support et annonces PhpMyNewsLetter.
Vous n'êtes pas identifié(e).
Pages :: 1
Le traking se fait par une image or si l’on désactive l’ouverture d’image, pas de traking, très courant sur gmail.
Il y aussi un traking pour les cliques, bien sur si l’on clique sur le lien, mais là, c’est un reflexe pourquoi copier coller le lien plutôt que de cliquer. HA ! fainéantise quand tu nous tiens !
Or, chaque traking écrit sur une table différente.
Donc on a bien le nombre lien cliqué dans « statistique de la liste » , mais si l’ouverture d’image est désactivée pas de nom de mail sur « profils des abonnés ».
Peut-on faire :
Soit, lors du clique écrire également sur la table : -------_track
Ou bien, récupérer sur la table ------_track_links afin de l’afficher sur « profils des abonnés » on aurai pas l’ouverture mais le clique donc pour cliquer il faut ouvrir.
On a plus de chance.
Qu’en pensez-vous ?
J'ai fais des essaie et cela marche. Ajout dans r.php d'une partie de trc.php. Même si l’ouverture d’image est désactivée le fait que l'on clique sur le lien cela inscrit le mail dans « profils des abonnés ». Voilà.
Dernière modification par Antoine (01-06-2020 22:08:34)
Hors ligne
Alors gmail....
Oui bien sûr, on pourrait ajouter une lecture si clic depuis un compte gmail... Ca peut faire plaisir à certains, c'est évident ! Je valide et j'en prends note !!
2 tables de tracking, parce que d'un coté on a les ouvertures, et de l'autre, les liens cliqués.
Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide
Hors ligne
Bonjour Arnaud,
j'ai fait la modif et ça fonctionne.
Je mets ici ou je vous l'envoie en mp pour vérification
Hors ligne
Ah mais ici ce sera le bienvenue
Ou si vous avez un compte github pour proposer une maj ?
Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide
Hors ligne
HA ! Non j’ai pas de compte github.
Permet de savoir si un mail a été ouvert même si l’ouverture d’image n’a pas été autorisée à condition qu’il y ait un lien à cliquer sur le mail.
A vous de faire en sorte de mettre un lien intéressant qui donne envie de cliquer.
ATTENTION !! vous êtes le seul responsable de cette modification.
1 --- Copier (FilleZilla ou autre) r.php
2 --- renommer celui de PMN en r_ORI. php
3 --- Remplacer le tout contenu de r.php par :
4 --- le mettre dans PMN
Voilà!
<?php
if(!empty($_GET['m'])&&!empty($_GET['h'])&&!empty($_GET['l'])&&!empty($_GET['r'])){
include("_loader.php");
foreach($_GET as $key=>$value){
$$key = $cnx->CleanInput($value);
}
$r = urldecode($r);
$row_config_globale = $cnx->SqlRow("SELECT * FROM ".$table_global_config);
$row_id = $cnx->query("SELECT id FROM ".$row_config_globale['table_track_links']."
WHERE list_id ='".$l."'
AND msg_id='".$m."'
AND hash ='".$h."'
AND link ='".$r."'")->fetchAll();
$nb_result=count($row_id);
if($nb_result==0){
$cnx->query("INSERT INTO ".$row_config_globale['table_track_links']."(list_id,msg_id,link,hash,cpt,dt_track_link)
VALUES ('".$l."','".$m."','".$r."','".$h."','1',now())");
}elseif($nb_result==1){
$cnx->query("UPDATE ".$row_config_globale['table_track_links']."
SET cpt=cpt+1,dt_track_link=now()
WHERE list_id ='".$l."'
AND msg_id='".$m."'
AND hash ='".$h."'
AND link ='".$r."'");
}
}
include("_loader.php");
$row_config_globale = $cnx->SqlRow("SELECT * FROM ".$table_global_config);
$filesize=filesize('blank.gif');
//********************************************************* Recherche IP
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$urlGoogle = gethostbyaddr($ip);
$pattern = '/(.*)\.google\.com$/';
preg_match($pattern, $urlGoogle , $matchesGoogle);
$isGoogle = strstr($urlGoogle ,'google.com');;
if(count($matchesGoogle)>0&&$isGoogle!=FALSE) {
$ip='IP Gmail Proxy';
}
//******************************************************** Rechercher du navigateur
include('include/lib/class.browser.php');
$this_browser = new Browser();
$browser = $this_browser->getBrowser();
$browser_version = $this_browser->getVersion();
$browser_platform = $this_browser->getPlatform();
if ( $browser_platform == 'iPhone' || $browser_platform == 'iPad' ) {
$browser_platform = 'iOS';
}
if ( $browser_platform == 'Apple' ) {
$browser_platform = 'macOS';
}
$browser_user_agent=$this_browser->getUserAgent();
require_once 'include/lib/class.mobile.php';
$detect = new Mobile_Detect;
$devicetype = ( $detect->isMobile() ? 'mobile' : ( $detect->isTablet() ? 'tablet' : 'computer' ) );
//******************************************************* Rechercher si deja inscrit
$sql="SELECT id
FROM ".$row_config_globale['table_tracking']."
WHERE hash='".$_GET['h']."'
AND ip = '".$ip."'
AND devicetype = '".$devicetype."'
AND subject = (
SELECT id
FROM ".$row_config_globale['table_archives']."
WHERE id='".$m."')";
$row_id = $cnx->query($sql)->fetchAll();
$nb_result=count($row_id);
//******************************************************** Geo localisation
include("geoloc/geoipcity.inc");
include("geoloc/geoipregionvars.php");
$gi = geoip_open(realpath("geoloc/GeoLiteCity.dat"),GEOIP_STANDARD);
$record = geoip_record_by_addr($gi,$ip);
//******************************************************** si pas inscrit
if( $nb_result==0 ) {
$cnx->query("INSERT INTO ".$row_config_globale['table_tracking']."
(hash,subject,date,open_count,ip,browser,
version,platform,useragent,devicetype,
lat,lng,city,postal_code,region,country)
VALUES
('".$_GET['h']."','".$m."',NOW(),'1','".$ip."','".$browser."',
'".@$browser_version."','".@$browser_platform."','".@$browser_user_agent."','".@$devicetype."',
'".@$record->latitude ."','".@$record->longitude ."','".@addslashes(htmlspecialchars($record->city)) ."',
'".@$record->postal_code ."','".@addslashes(htmlspecialchars($GEOIP_REGION_NAME[$record->country_code][$record->region]))."',
'".@addslashes(htmlspecialchars($record->country_name))."')");
} //if( $nb_result==0 )
//******************************************************** si inscrit on modifie le Nb de vues
elseif( $nb_result==1 ) {
$cnx->query("UPDATE ".$row_config_globale['table_tracking']."
SET date = NOW(),
open_count = open_count+1,
ip = '".$ip."',
browser = '".$browser."',
version = '".$browser_version."',
platform = '".$browser_platform."',
useragent = '".$browser_user_agent."',
devicetype = '" . $devicetype . "'
WHERE hash='".$_GET['h']."' AND subject='".$m."'");
}
//***********************************************Fin
$redirect = urldecode(htmlspecialchars_decode($_GET['r']));
header("Location:$redirect");
?>
J'ai corrigé une erreur de copie. Désolé
Dernière modification par Antoine (02-06-2020 23:02:10)
Hors ligne
Je vais regarder et si ok je l ajoute
Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide
Hors ligne
Pages :: 1