|
|||||||
| Développements Tout ce qui touche au développement d'applications ou du Web |
![]() |
|
|
LinkBack | Outils de la discussion | Modes d'affichage |
|
|
#1 (permalink) |
|
Débutant
![]() Date d'inscription: février 2005
Localisation: Faverges - Haute-Savoie
Messages: 77
Pouvoir de réputation: 0
![]() |
Bonjour,
J'ai développé un script php couplé avec une bdd permettant de faire du suivi d'e-mailing. A savoir: qui a lu le mail? quand? A-t-il visité le site web indiqué dans le mail depuis le mail? Pour cela, je mets une balise <img> dans mon mail qui pointe vers une page php. Pour les infos de click sur les liens, j'ai modifié l'index du site avec un peu de php qui récupère l'IP et qui fait +1 sur un compteur dans la base de données. Ma table sql retour possède 5 champs: mail=mail du destinataire nombre=nombre de lecture date=date de lecture adripmail= @Ip de lecture web=nombre de visites sur le site depuis le mail Lors de mon envoi de mail, j'importe toutes les adresses dans la table et j'initialise tous les champs. J'aimerai avoir votre avis sur la façon dont j'ai codé le script (c'est mon premier script) et s'il est "optimal" (pas de cas boiteux oublié): Voici l'algo final auquel je suis parvenu: ImageShack - Hosting :: algogk5.jpg Voici le code associé: Code:
//Récupération de l'@ IP
if($_SERVER) {
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif(isset($_SERVER['HTTP_CLIENT_IP']))
$adress = $_SERVER['HTTP_CLIENT_IP'];
else
$adress = $_SERVER['REMOTE_ADDR'];
}
else {
if(getenv('HTTP_X_FORWARDED_FOR'))
$adress = getenv('HTTP_X_FORWARDED_FOR');
elseif(getenv('HTTP_CLIENT_IP'))
$adress = getenv('HTTP_CLIENT_IP');
else
$adress = getenv('REMOTE_ADDR');
}
//Test sur l'adresse IP
$iptmp=mysql_query("select adripmail from retour where mail='$mail'");
$adrip=mysql_fetch_array($iptmp);
//@IP = valeur par défaut -> nouvelle lecture -> mise à jour de tous les champs
if($adrip['adripmail']=="xx")
{
mysql_query("update retour set nombre=nombre+1, date='$date', adripmail='$adress' where mail='$mail'");
}
else
{
//Seconde lecture
//Si @IP actuelle est différente de celle enregistrée
if($adress!=$adrip['adripmail'])
{
//Test pour éviter les doublons
$req=mysql_query("select * from retour where adripmail='$adress' and mail='$mail'");
$res=mysql_num_rows($req);
if($res=='0')
{
//Si non présent, on insère une nouvelle ligne dans la base
$mailencod=utf8_encode($mail);
mysql_query("insert into retour(mail,nombre,date,adripmail,web) values('$mailencod','1','$date','$adress','0')");
}
else
{
//Sinon, update du compteur de lecture
mysql_query("update retour set nombre=nombre+1 where mail='$mail' and adripmail='$adress'");
}
}
//Sinon mise à jour du compteur de lecture
else
{
mysql_query("update retour set nombre=nombre+1 where mail='$mail' and adripmail='$adress'");
}
}
Pour ma part, je l'ai testé et il semble fournir le résultat attendu... Merci d'avance de vous pencher dessus. |
|
|
|
![]() |
|
|
|||
|
||||
| Outils de la discussion | |
| Modes d'affichage | |
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Votre avis sur notre application de e-learning | CIEL | Discussions diverses | 0 | 03/04/2006 16h40 |
| Avis Sur Mon Projet De Config | vince94800 | Conseils | 11 | 20/12/2004 19h10 |
| Votre avis pour créer mon reseau | NiC1305 | Connexions Internet | 1 | 19/07/2003 01h54 |
| Besoin de votre avis sur le choix d'un sécuritaire | holrick | Sécurité & virus | 7 | 30/04/2003 16h10 |
| je vous expose mon probleme donnez moi votre avis merci! | bil007 | Connexions Internet | 3 | 25/07/2002 13h39 |