Bonjour,
Etant débutant j'ai encore un peu de mal avec les tableaux et autre trucs du genre.
Voila mon objectif : faire un compteur de visites.
La question que je me pose dans un premier temps est de comment fait-on cela ?
J'ai vu plusieurs chose sur le net :
- avec cookies
=>problème si l'utilisateur désactive les cookies, c'est mort visite +1 à chaque fois
- base SQL:
=> est-ce la bonne solution ?
Voila ce que j'ai fais :
ma table a les champs suivants : ip_visiteur, date
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $ip_visiteur = $_SERVER['SERVER_ADDR'] ; $date_visite = date("Y-m-d"); $heure = date("H:i"); $req_ip = "SELECT * FROM compteur "; $res_ip = mysql_query($req_ip); $ip_ok = mysql_fetch_array($res_ip);
dans un premier temps j'aimerais faire cela :
Je regarde si l'ip existe et je l'insert sinon message.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 if(!in_array($ip_visiteur, $ip_ok)){ $req = 'INSERT INTO compteur VALUES ("'.$ip_visiteur.'", "'.$date_visite.'", "'.$heure.'")'; $res = mysql_query($req); }else{ echo 'ip déjà présente'; }
J'ai ce message d'erreur :
Warning: in_array() expects parameter 2 to be array, boolean given in C:\wamp\www\sovitrat.Fr\templates\compteur.php on line 12
c'est la ligne du if.
Mon idée est de faire une autre requête en parallèle qui va transvaser toutes les adresse ip avec un date différente de la date du jour dans une table stat.
Comme ça je vais pouvoir faire des stats de visites total (table compteur et table stat) et de visite du jour (table compteur)
Voila le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if($ip_ok['date'] != $date_visite){ $query = 'INSERT INTO compteur_stat SELECT * FROM compteur WHERE date != ' . $date_visite .''; $result = mysql_query($query); $query2 = 'DELETE FROM compteur WHERE date != ' . $date_visite .''; $result2 = mysql_query($query2); }
qu'en pensez-vous pour mon erreur et la suite ?
Merci par avance de votre retour...
Partager