Jump to content

script statistiques de clics(ou visites)


Recommended Posts

bonjour a tous,

je suis entrain de faire un script en php pour enregistrer le nombre de clics sur une icone ou plutout le nombre de visites.

bon l algo en generale c ca :

si un nouveau ip: - j insert ds la table 1 l'ip ,date du jour , id

-j insert ds la table 2 id , nombre de clics=1 , date du clics

si c le meme ip qui clics plusieurs fois ds la meme journée il ya rien qui se passe cad le nombre de clic ne change pas.

mais si le meme ip clics lors d une date qui differe de 24h j update la date du clics ainsi que le nombre de clics=1 devient nombre declics=nombre de clics+1.

le programme est deja fait mais c just la condition de commparaison entre la date de connexion de l'ip et celle du dernier clics qui va pas .

merci d'avance.

Link to post
Share on other sites

Comment stockes tu la date de connection de l'ip, et idem pour la date du dernier clic ? Comment les stockes tu (DB ou fichier txt), et sous quel format (chaine,timestamp, etc ?)

Avec ca, on pourra faire quelque chose ;)

Anonymus.

Link to post
Share on other sites

Bonjour,

il faudrait un bout de code pour voir ce qui va pas.

Sinon sur le principe, il faut traiter les internautes aol avec soin sous peine d'avoir de très grosse erreurs, en effet les abonnés aol passe par un proxy dynamique (proxy différent à chaque requête) et ont donc une ip différente à chauqe fois.

Link to post
Share on other sites

je les stockes ds des tables ds ma bdd musql .

et la date du connexion de l'ip c $date = date("%Y-%m-%d");

et la date du dernier clics c $datetime = strftime("%Y-%m-%d %H:%M:%S");

j espere que c clair.

encore merci .

Link to post
Share on other sites

C'est clair. Le problème, c'est que tu ne stockes pas les dates sous le meme format. Tu aurais du choisir un seul format pour toutes les dates de ta base de données, et faire les 'changements dans le script. Il t'aurait été plus facile, ensuite, de faire les manipulations adhéquates.

Pour ton problème : Le plus simple est que tu retrouves donc les timestamp respectifs. Pour cela, on commence par la date de connection :

echo "<br>date de connection : ".$date;
echo"<br>transformation en 'mois','jour','année'";
$year_first_date = substr($date,0,4);
$month_first_date = substr($date,5,2);
$day_first_date = substr($date,8,2);
echo"<br> timestamp correspondant : ".mktime(0,0,0,$month_first_date,$day_first_date,$year_first_date );

On passe à l'autre valeur, $datetime, auquel on commence par enlever les 'heure','minute','seconde' :

$datetime = strftime("%Y-%m-%d %H:%M:%S");
echo"<br> récupération de la chaine, sans les heure, minute, seconde: ".substr($datetime,0,10);

puis on recommence la transformation ci dessus, pour trouver le timestamp, correspondant au format de la chaine :

$year_first_datetime = substr($date,0,4);
$month_first_datetime = substr($date,5,2);
$day_first_datetime = substr($date,8,2);
echo"<br> timestamp correspondant : ".mktime(0,0,0,$month_first_datetime,$day_first_datetime,$year_first_datetime );

A partir de là, tu peux, sans problèmes, comparer les 2 valeurs, qui sont exprimées en secondes. Le timestamp est, rappelons le, le nombre de secondes passées depuis le 1er janvier 1970.

Pour comparer, il faut evidement transformer les données en seconde. Donc :

date_max = date_connection+86400 (soit : 24 heures, en secondes)

si date_max< date_dernier_clic,

alors ... cela fait plus de 24 heures que la personne est connectée.

Anonymus.

Link to post
Share on other sites

Après réflexion, un autre problème se pose, à savoir :

Tu stockes les date de connection sans renseigner l'heure. Donc, quelqu'un qui se connecte le 10/05 à 1h du matin, se verra attribuer : 10/05/2004. Il aura donc le droit jusqu'à ... 24 heures plus tard, soit jusqu'au 11/05. Jusqu'à quelle heure ? jusqu'à 23h59. Compris ?

Je recommence. Dans la mesure où tu ne stockes pas l'heure de connection de l'ip, tu ne peux savoir si la personne se connecte à 1h du matin ,ou à 23h 50. Donc, dans un cas, cette personne dispose toute la journée, plus le temps que tu lui accordes, alors que dans l'autre cas, elle dispose de tout juste 1h, plus le temps que tu lui accordes.

Voilà. Si tu n'as pas compris, fais signe.

A+,

Anonymus.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...