Compteur de clics

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Compteur de clics

Re: Compteur de clics

par Fredy07 » 17 août 2009, 03:16

Rebonjour,

Le code est correct et je l'utilise en local, le problème provient du fichier CSS qui charge l'entête de la page et continue le chargement, c'est pour cela que le compteur s'incremente en double.

Merci pour votre aide.

Re: Compteur de clics

par Ryle » 16 août 2009, 19:07

Je n'arrive pas à voir d'où provient ta double incrémentation, mais ta façon de faire n'est pas bonne.. si tu as deux visiteurs qui se connectent simultanément, tu vas écraser ton compteur avec deux fois la même valeur au lieu de l'incrémenter deux fois.

Pour mettre à jour ton compteur, fais le directement en sql, les bases de données savent bien mieux gérer les accès multiples :
$update_sd = "UPDATE sds SET hits = hits + 1 WHERE id_sd = 1";

Re: Compteur de clics

par monintranet » 16 août 2009, 09:48

tu pourrais refaire une lecture après l'update pour voir? c'est bizarre ton truc, ça sent la race condition...

Compteur de clics

par Fredy07 » 16 août 2009, 01:38

Bonjour,

J'ai un petit problème avec le compteur des pages vues, il doit être incrémenter par 1 mais il s'incrémente par 2.
<?php
echo 'accueil';

################################## select to show the data #######################################
$select_sd = 'SELECT * from sds WHERE id_sd=1';
$result_sd = mysql_query ($select_sd) or die ('Erreur de selection: ' .mysql_error());
$total_sd = mysql_num_rows($result_sd);

if ($total_sd) {
	$row_sd = mysql_fetch_array($result_sd);
		
		$id_sd 			= $row_sd['id_sd'];
		$classement 	= $row_sd['classement'];
		$title_ar 		= $row_sd['title_ar'];
		$title_en 		= $row_sd['title_en'];
		$description 	= $row_sd['description'];
		$url 			= $row_sd['url'];
		$hits 			= $row_sd['hits'];
		
		echo '<br>hits:'.$hits.'<br>';
		echo 'id sd:'.$id_sd.'<br>';

include 'Included_Files/Replacement.php';			

$counter = $hits + 1;

echo 'counter'.$counter.'<br>';
		echo '<div align="center">Page vue: '.$hits.' fois and was generated on xxxx seconds</div><br>';
	
	################################## update the counter for hits #######################################
$update_sd = "UPDATE sds SET hits = $counter WHERE id_sd = 1";
echo $update_sd.'<br>';
$rup_sd = mysql_query($update_sd) OR DIE ('Erreur update: '. mysql_error());
}
?>
merci pour votre aide