Compter le nombre de fois ou une page a été vue
18 messages
• Page 1 sur 2 • 1, 2
- fabrice88
- WRInaute occasionnel

- Messages: 289
- Inscription: 15 Oct 2007
Compter le nombre de fois ou une page a été vue
Bonjour,
en parralele avec mon autre message sur ce forum je voudrait savoir comment faire pour compté le nombre de fois ou un sujet de mon forum aura été vue apr les internautes ?
J'imaginai faire comme ceci : dans ma table forum_sujet, je rajoute un nouveau champ que je nomme 'vues'.
ensuite lorsq'un internaute clique sur un sujet pour voir son detail je cré un compteur qui ajoute +1 a chaque ouverture du sujet.
Est ce que l'idée est bonne ou est ce qu'il faut procéder autrement ?
en parralele avec mon autre message sur ce forum je voudrait savoir comment faire pour compté le nombre de fois ou un sujet de mon forum aura été vue apr les internautes ?
J'imaginai faire comme ceci : dans ma table forum_sujet, je rajoute un nouveau champ que je nomme 'vues'.
ensuite lorsq'un internaute clique sur un sujet pour voir son detail je cré un compteur qui ajoute +1 a chaque ouverture du sujet.
Est ce que l'idée est bonne ou est ce qu'il faut procéder autrement ?
-

M&B Multimédia - WRInaute impliqué

- Messages: 544
- Inscription: 1 Oct 2009
Re: Compter le nombre de fois ou une page a été vue
Ton idée est bonne... personnellement je ne vois pas comment tu pourrais faire autrement.
- ZelkiN
- WRInaute impliqué

- Messages: 500
- Inscription: 27 Juil 2007
Re: Compter le nombre de fois ou une page a été vue
En effet tu n'as guerre le choix, et puis la plupart des compteurs sont fait ainsi, après tu peux gérer au niveau des ip pour ne pas compter plusieurs fois la meme page vu au meme utilisateur
- fabrice88
- WRInaute occasionnel

- Messages: 289
- Inscription: 15 Oct 2007
Re: Compter le nombre de fois ou une page a été vue
ok merci bon alors voilà se que je fais :
lors de la toute premiere ouverture de la page j'ai bien l'incrementation du + 1 qui se fait et j'ai donc mon champ vue qui prend la valeur de 1 au lieu de 0.
par contre apres sa ne fonctionne plus. si je retourne sur la meme page mon champ vue n'est plus incrémenté il reste à 1.

- Code: Tout sélectionner
//création de la requête SQL:
$sqlvue = "UPDATE forum_sujets SET vue = $vue+1 WHERE id = ".$_GET['id_sujet_a_lire'];
$reqvue = mysql_query($sqlvue);
lors de la toute premiere ouverture de la page j'ai bien l'incrementation du + 1 qui se fait et j'ai donc mon champ vue qui prend la valeur de 1 au lieu de 0.
par contre apres sa ne fonctionne plus. si je retourne sur la meme page mon champ vue n'est plus incrémenté il reste à 1.
-

spout - WRInaute accro

- Messages: 4377
- Inscription: 14 Mai 2003
Re: Compter le nombre de fois ou une page a été vue
fabrice88 a écrit:ok merci bon alors voilà se que je fais :
- Code: Tout sélectionner
//création de la requête SQL:
$sqlvue = "UPDATE forum_sujets SET vue = $vue+1 WHERE id = ".$_GET['id_sujet_a_lire'];
$reqvue = mysql_query($sqlvue);
lors de la toute premiere ouverture de la page j'ai bien l'incrementation du + 1 qui se fait et j'ai donc mon champ vue qui prend la valeur de 1 au lieu de 0.
par contre apres sa ne fonctionne plus. si je retourne sur la meme page mon champ vue n'est plus incrémenté il reste à 1.
C'est le "$vue" qui semble bizarre, je sais pas ce qu'il contient, ça devrait plutôt être:
- Code: Tout sélectionner
//création de la requête SQL:
$sqlvue = "UPDATE forum_sujets SET vue = vue+1 WHERE id = ".$_GET['id_sujet_a_lire'];
$reqvue = mysql_query($sqlvue);
- ZelkiN
- WRInaute impliqué

- Messages: 500
- Inscription: 27 Juil 2007
Re: Compter le nombre de fois ou une page a été vue
Euh Spout a raison d'une part, d'autre part attention a la sécurité o_O, ne met jamais un GET pas traité dans une requête SQL !
Si il s'agit d'un nombre, vérifie le avec un is_numeric, ou au moins met un addslashes($_GET['..']) sinon tu risques d'avoir des problèmes
Bon courage !
Si il s'agit d'un nombre, vérifie le avec un is_numeric, ou au moins met un addslashes($_GET['..']) sinon tu risques d'avoir des problèmes
Bon courage !
-

spout - WRInaute accro

- Messages: 4377
- Inscription: 14 Mai 2003
Re: Compter le nombre de fois ou une page a été vue
Pour éviter les comptages multiples il y a un moyen simple (mais pas infaillible):
- Quand un comptage est fait, envoyer un cookie vers le navigateur du visiteur.
- Sauvegarder la dernière IP qui a incrémenté le compteur.
- Avant chaque incrémentation du compteur, vérifier si cookie et si pas la même IP.
Si un petit malin supprime les cookies, il est encore bloqué par la dernière IP.
La faille c'est si le visiteur change d'IP et supprime ses cookies, mais c'est quand même beaucoup mieux que sans vérification.
Edit: oui j'ai pas fait gaffe, il faut évidement bien vérifier le contenu du _GET avant de le transmettre à la requête.
Avec mysql_real_escape_string() http://php.net/manual/fr/function.mysql-real-escape-string.php au lieu de addslashes()
- Quand un comptage est fait, envoyer un cookie vers le navigateur du visiteur.
- Sauvegarder la dernière IP qui a incrémenté le compteur.
- Avant chaque incrémentation du compteur, vérifier si cookie et si pas la même IP.
Si un petit malin supprime les cookies, il est encore bloqué par la dernière IP.
La faille c'est si le visiteur change d'IP et supprime ses cookies, mais c'est quand même beaucoup mieux que sans vérification.
Edit: oui j'ai pas fait gaffe, il faut évidement bien vérifier le contenu du _GET avant de le transmettre à la requête.
Avec mysql_real_escape_string() http://php.net/manual/fr/function.mysql-real-escape-string.php au lieu de addslashes()
-

spout - WRInaute accro

- Messages: 4377
- Inscription: 14 Mai 2003
Re: Compter le nombre de fois ou une page a été vue
fabrice88 a écrit:sinon tu risques d'avoir des problèmes
quel genre de probleme peut on avoir ?
http://fr.wikipedia.org/wiki/Injection_SQL
- fabrice88
- WRInaute occasionnel

- Messages: 289
- Inscription: 15 Oct 2007
Re: Compter le nombre de fois ou une page a été vue
ok donc si je met en tout debut de ma page :
C'est ok ?
- Code: Tout sélectionner
$id_sujet_a_lire = mysql_real_escape_string($_GET['id_sujet_a_lire']);
C'est ok ?
- fabrice88
- WRInaute occasionnel

- Messages: 289
- Inscription: 15 Oct 2007
Re: Compter le nombre de fois ou une page a été vue
ok merci. alors du coup dès que j'intégre des données dans ma base sql je doit mettre mysql_real_escape_string().
Est ce que dans le cas de la requete ci dessous je doit la modifié :
pour (mais sa va être long si y'a beaucoup de champs a remplir...):
Est ce que dans le cas de la requete ci dessous je doit la modifié :
- Code: Tout sélectionner
$sql = 'INSERT INTO forum_reponses VALUES("", "'.$_POST['auteur'].'", "'.$_POST['message'].'", "'.$date.'", "'.$_GET['numero_du_sujet'].'")';
pour (mais sa va être long si y'a beaucoup de champs a remplir...):
- Code: Tout sélectionner
$auteur = mysql_real_escape_string($_POST['auteur']);
$message= mysql_real_escape_string($_POST['message']);
$date = mysql_real_escape_string($_POST['date']);
$numero_du_sujet = mysql_real_escape_string($_GET['numero_du_sujet']);
$sql = 'INSERT INTO forum_reponses VALUES("", "'.$auteur.'", "'.$message.'", "'.$date.'", "'.$numero_du_sujet.'")';
18 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Compter une fois l'ip
- [PHP] : compter le nombre de requêtes MySQL
- Compter le nombre de caractères d'une chaine
- Comment compter le nombre de / dans l'url ?
- AIDE PHP COMPTER LE NOMBRE D'ARTICLES
- [PHP/MySQL] Compter le nombre de checkbox cochées
- Compter le nombre de clients à l'aide de Google Analytics
- Compter le nombre de caractère que retourne un fichier .php
- Compter le nombre d'enregistrement différents dans mysql
- Compter le nombre de liens vers une même page
- Google compter lever entre 2 et 3 milliards de dollars - 26-07-2004
- Redirection (PHP, JavaScript, serveur...) - 04-07-2003
- Photos aériennes de la France dans Microsoft Virtual Earth - 24-01-2007
- J'ai de la chance ! - 02-08-2003
- Annuaire de sites sur Google - 22-04-2003
- Déclarer son fichier sitemap dans le fichier robots.txt - 16-04-2007
- YouTube Insight : des statistiques complètes sur vos vidéos YouTube - 27-03-2008
- Suivre le Tour de France 2008 avec Google Street View - 03-07-2008
- Calcul d'indice de densité
Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page. - Analyse des backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées. - Déterminer l'ancienneté d'un site
Cet outil vous permet de connaître une estimation de l'ancienneté d'un site : il fournit la date à laquelle Google l'a indexé la première fois (et la même chose pour archive.org).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
