Modifier le topref de morgan

12 messages · 5 vues

jer666 » mer. 21 mai 2008 19:37 #272

Salut,

je cherche a modifier un peu le topref de morgan.

Je cherche une astuce, n'ayant pas trop le temps a reflechir

1/en fait je desirerais enregister +1 a mes partenaires si le visiteur visite 2 pages au moins.

2/généré un topref glissant sur 24 ou 48h (en fait j'ai pas trop compris le mode de fonctionement et l'astuce de la date dans l'ip de l'id 1 lol )

3/ n'enregistrer les ip QUE si le referer est connu.

merki
Membre
Messages : 40
Inscription : 31 mai 2008

Re: Modifier le topref de morgan

Dino » mer. 21 mai 2008 21:55 #274

Il nous faudrait le source pour pouvoir commencer a te donner les grandes directives.
Membre
Messages : 337
Inscription : 21 mai 2008

Re: Modifier le topref de morgan

jer666 » mer. 21 mai 2008 21:56 #276

je pense que morgan ne m'en voudra pas de publier une partie tout du moins de la source

Code: Tout sélectionner
<?php
/*
Script by Morgan "2nice4u.net" <its2nice4u@hotmail.fr>
la table ip contient un enregistrement de controle avec id=1 et le champs ip est egal a la date du jour, ce champs ne doit jamais etre supprimé, la date est modifié des qu'on change de jour, cad minuit et un refresh des in referers est fait
*/

/**
@param une URL quelconque
@returns retourne le nom de domaine d'une URL reçue
*/
function chercher_ndd($url)
{
if (strstr($url, "http://"))
$url=substr($url, 7);

if (preg_match('#^www\.(.+)$#', $url))
$url=substr($url, 4);

$pos=strpos($url, "?");
if (!($pos===false))
$url=substr($url, 0, $pos);

$pos=strpos($url, "/");
if (!($pos===false))
$url=substr($url, 0, $pos);

return $url;
}

/**
*@returns retourne l'adresse IP du visiteur
*/
function getIPVisiteur()
{
if($_SERVER)
{
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
elseif (isset($_SERVER['HTTP_CLIENT_IP']))
$ip=$_SERVER['HTTP_CLIENT_IP'];
else
$ip=$_SERVER['REMOTE_ADDR'];
}
else
{
if (getenv('HTTP_X_FORWARDED_FOR'))
$ip=getenv('HTTP_X_FORWARDED_FOR');
elseif (getenv('HTTP_CLIENT_IP'))
$ip=getenv('HTTP_CLIENT_IP');
else
$ip=getenv('REMOTE_ADDR');
}

return $ip;
}

$date=date("Y-m-d"); //definition de la date du jour

// on récupère la date stockée dans la base de données
$reponse=mysql_query("Select ip From `ip` Where id=1");
$donnees=mysql_fetch_array($reponse);

if ($date>$donnees['ip'])// si on a changé de jour
{
mysql_query("Delete From `ip` Where id!=1"); //on supprime les ip de la veille
mysql_query("Update `ip` Set ip='$date' Where id=1"); //mise a jour de la date du jour en cours
mysql_query("Update referers Set `in`=0"); // reset des ins
}

//on regarde s'il est déjà venu
$ip=mysql_real_escape_string(getIPVisiteur()); // on récupère l'IP du visiteur
$reponse=mysql_query("Select Count(id) as nb_idem From `ip` Where `ip`='$ip'"); // on regarde si l'IP est déjà dans la base de données
$donnees=mysql_fetch_array($reponse);

if ($donnees['nb_idem']==0) // l'IP n'y était pas
{
if (!empty($_SERVER['HTTP_REFERER'])) // il existe un referer
{
$ndd_referer=mysql_real_escape_string(chercher_ndd($_SERVER['HTTP_REFERER'])); // on récupère ce referer
mysql_query("Update referers Set `in`=`in`+1 Where ndd='$ndd_referer'"); // on ajoute une entrée à ce referer
}

mysql_query("Insert into `ip` Values ('', '$ip')"); // on stocke l'IP
}
?>
Membre
Messages : 40
Inscription : 31 mai 2008

Re: Modifier le topref de morgan

Dino » mer. 21 mai 2008 23:03 #279

jer666 a écrit:1/en fait je desirerais enregister +1 a mes partenaires si le visiteur visite 2 pages au moins.


Pas évident et ça remets à mon avis tout le script en cause car il faut tracker le visiteur.

jer666 a écrit:2/généré un topref glissant sur 24 ou 48h (en fait j'ai pas trop compris le mode de fonctionement et l'astuce de la date dans l'ip de l'id 1 lol )
3/ n'enregistrer les ip QUE si le referer est connu.


Le plus simple :
- Faire une table referer (IP_Address, Domain, Date) avec PRIMARY KEY(IP_Address, Domain) et Date en UPDATE CURRENT_TIMESTAMP.
- Extraire le domaine du referer (une expression régulière suffit, pas besoin de faire plusieurs tests comme dans la fonction chercher_ndd() )
- Tester si le domaine est connu
- Si oui, ajouter le domaine et l'ip dans la table "referer" : INSERT INTO referer (IP_Address, Domain) VALUES('1.2.3.4', 'bite.com')
- Si l'ajout réussi, rajouter +1 au site ayant ce domaine.
- Purger la table referer avec les enregistrements de plus de X heure : DELETE FROM referer WHERE Date<DATE_SUB(NOW(), INTERVAL 24 HOUR)
Membre
Messages : 337
Inscription : 21 mai 2008

Re: Modifier le topref de morgan

Jeremie » mer. 21 mai 2008 23:52 #280

Pour le 1) , je te conseil de créer une sessions lorsqu'un visiteurs arrive d'un referer, tu lui met une valeur de 1. Si il va sur une autre page, tu regarde si il y a une session referer et tu lui met +1 .

Si elle est alors égal a 2 ...
Membre
Messages : 107
Inscription : 25 mai 2008

Re: Modifier le topref de morgan

Dino » mer. 21 mai 2008 23:58 #290

Ouais c'est une bonne idée.
Membre
Messages : 337
Inscription : 21 mai 2008

Re: Modifier le topref de morgan

morgan » jeu. 22 mai 2008 01:44 #307

Je passerais plutôt par un arbre binaire de recherche implémenté dans une pile stockée dans des cookies ainsi que dans la base de données pour + de sûreté. Et je ferais une vérif de l'IP après chaque ligne de code.

==========> [] Je sors...

Edit: ssblog, ça fait un peu nazi comme truc non ? :/
Membre
Messages : 91
Inscription : 25 mai 2008

Re: Modifier le topref de morgan

Ak1 » jeu. 22 mai 2008 11:56 #315

morgan a écrit:Edit: ssblog, ça fait un peu nazi comme truc non ? :/


Lol je me suis dis la meme chose ...
Membre
Messages : 150
Inscription : 19 mai 2008

Re: Modifier le topref de morgan

Jeremie » jeu. 22 mai 2008 14:33 #318

Ak1 a écrit:
morgan a écrit:Edit: ssblog, ça fait un peu nazi comme truc non ? :/


Lol je me suis dis la meme chose ...


Sur le design du site vous voyez : Sblog .

Mais c'est pas libre ... De toute façon le site est dead ...
Membre
Messages : 107
Inscription : 25 mai 2008

Re: Modifier le topref de morgan

Ak1 » jeu. 22 mai 2008 15:17 #364

Ok
Membre
Messages : 150
Inscription : 19 mai 2008