PhpMyNewsLetter 2.0

Support et annonces PhpMyNewsLetter.

Vous n'êtes pas identifié(e).

Annonce

Pour me permettre de mieux vous aider au mieux, merci d'être le plus précis possible en donnant :
- la version de phpmynewsletter utilisée
- votre hébergement : personnel, dédié, mutualisé
- votre hébergeur (OVH, free, Infomaniak, 1and1,...)
- votre OS : linux, windows
- version de PHP (5.3, 5.6, 7.0, hhvm...)
Toutes les réponses à mes questions qui sont sans retour de votre part seront considérées comme résolues !

#1 01-06-2020 14:26:16

Antoine
Membre

Améliorer le traking.

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

#2 02-06-2020 13:57:15

Arnaud
Administrateur

Re : Améliorer le traking.

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  wink

Hors ligne

#3 02-06-2020 15:23:52

Antoine
Membre

Re : Améliorer le traking.

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

#4 02-06-2020 16:19:48

Arnaud
Administrateur

Re : Améliorer le traking.

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  wink

Hors ligne

#5 02-06-2020 16:50:23

Antoine
Membre

Re : Améliorer le traking.

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

#6 02-06-2020 18:21:41

Arnaud
Administrateur

Re : Améliorer le traking.

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  wink

Hors ligne

Pied de page des forums

Propulsé par FluxBB