Bug inexpliquable compteur de clic

okuni Messages postés 1325 Statut Membre -  
okuni Messages postés 1325 Statut Membre -
Bonjour à tous,

J'ai découvert un bug sur mon site il y a peu.

j'ai une liste de données affichée avec un while.
Tout s'affiche correctement.
Il y a chaque fois un lien qui redirige vers une autre page (compteur.php)
Cette page incrémente le nombre de clic et ensuite, elle enregistre le nouveau résultat dans la base de donnée.

Mais voilà le soucis.
Une fois que j'ai cliqué sur le lien, l'incrémentation se fait correctement.
Je reviens sur la page précédente et là, soit le nombre de clic est égal à 1 (ce qui est normal (le compteur de départ est 0)) soit par magie, il m'affiche 2.

Donc voila, je ne comprend absolument pas pourquoi il incrémente de 2 mon nombre (si c'est à ce niveau du problème)

Bref, j'ai besoin d'aide.
Merci à ceux qui trouveront une solution.
A voir également:

13 réponses

toto
 
Bonjour

Nous sommes des devins. Mais comme marc de café, il nous faut du code.
0
toto
 
J'ai bien examiné le code, je l'ai fait tourner chez moi, il a l'air OK. Le problème doit venir d'ailleurs.
Remarque : si $titre (qui vient d'où ?) est empty, ton compteur est incrémenté sans que le nombre de clics soit affiché. S'il était à 0, quand tu reviendras, il sera à 2, ce qui est normal, et tu n'auras jamais vu le 1.
0
toto
 
Peux-tu confirmer que le compteur ne passe jamais de 1 à 3 ni de 2 à 4, etc, seulement de 0 à 2 ?
Le fait-il souvent (à tous les coups, une fois sur 2, sur 10...) ?
comment est appelée la page qui contient ce script ( clic sur un lien, redirection automatique etc...)?
0
toto
 
Explications très claires, merci.
Il est clair (façon de parler...) que ton compteur est appelé deux fois quand le nombre de clics est à 0.
Je suppose que le code que tu as montré est dans un include de ta page index.php. Peux-tu montrer ce code ?
Ta valeur de $id ne serait-elle pas transmise involontairement comme variable de session, et conservée d'un appel à l'autre même dans id dans le GET ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toto
 
Bonjour

Vu le up, mais désolé, je ne comprends pas. La seule anomalie que je vois, c'est que tu génères ta redirection sans <HTML> ni <HEAD> ni <BODY> ce qui n'est pas propre, mais n'explique rien.
0
okuni Messages postés 1325 Statut Membre 126
 
Apparemment, le problème ne se pose que lorsque le compteur est à 0 mais ce n'est peut-être qu'une coïncidence.
-1
okuni Messages postés 1325 Statut Membre 126
 
Personne ne sais m'aider?
-1
okuni Messages postés 1325 Statut Membre 126
 
C'est juste, j'avais completement oublié ce "détail" ^^"
<?php
/*Compteur de clic*/
	include ('../raynal/config.php');
	
	$id = $_GET['id'];
	
	$result0 = mysql_query("SELECT lien,compteur FROM raynal_video_episode WHERE id='$id'");
	$donnees = mysql_fetch_array($result0);	
	
	$lien = $donnees['lien'];
	
	if (!empty($lien))
	{
		//On incrémente le nombre de clic
		$clic = $donnees['compteur'] + 1;
		
		//On update le nombre de clic.
		$result2 = mysql_query("UPDATE raynal_video_episode SET compteur='$clic' WHERE id='$id'");
	}
	
	if (empty($titre) or empty($lien))
	{
		echo '<meta http-equiv=refresh content="1; URL=http://daphneed.free.fr/blizer/index.php">';
		echo "Une erreur est survenue, vous allez être redirigé dans 1 seconde.<br/>";
		echo "Merci de prévenir le webmaster.";
	}
	else
	{
		echo '<meta http-equiv=refresh content="0; URL='.$lien.'">';
		echo 'La redirection se fera dans 1 seconde. Si ce n\'est pas le cas, <a href="'.$lien.'">cliquez ici</a>';
		echo '<br/>';
		echo 'Il y a eu '.$clic.' clic.';
	}
?>
-1
okuni Messages postés 1325 Statut Membre 126
 
Merci de ton aide. :)
Effectivement, je ne sais pas pourquoi j'ai mi $titre ^^"
surement une erreur du a une maj.

Malheureusement, le bug persiste.
-1
okuni Messages postés 1325 Statut Membre 126
 
Je confirme, c'est seulement quand le compteur est a 0 qu'il passe directement a 2.
Et il le fait tout le temps.

On commence sur la page index.php?page=serie
La il y a le lien de redirection par exemple :
index.php?page=compteur_serie&id=154

ensuite toujours sur index.php, j'inclue le compteur (a l'aide d'un switch et de la variable $_GET['page'])

Pour terminer, la page compteur.php redirige vers le lien qui a comme id $_GET['id'] après l'incrémentation et l'enregistrement du compteur dans la base de donnée.
-1
okuni Messages postés 1325 Statut Membre 126
 
voila la page index.php
<?php
		$page = $_GET['page'];
		switch($page)
		{
			case 'serie':
			include('accueil.php');
			break;
			
			case 'ajouter_episode':
			include('ajouter_episode.php');
			break;
			
			case 'ajouter_episode2':
			include('ajouter_episode2.php');
			break;
			
			case 'ajouter_serie':
			include('ajouter_serie.php');
			break;
			
			case 'ajouter_serie2':
			include('ajouter_serie2.php');
			break;
			
			case 'perso':
			include('perso.php');
			break;
			
			case 'perso2':
			include('perso2.php');
			break;
			
			case 'modifier':
			include('modifier.php');
			break;
			
			case 'modifier2':
			include('modifier2.php');
			break;
			
			case 'modifier3':
			include('modifier3.php');
			break;
			
case 'compteur_serie':
include('compteur.php');
break;
			
			case 'recherche':
			include('recherche.php');
			break;
			
			case 'recherche2':
			include('recherche2.php');
			break;
			
			default:
			include ('accueil.php');
			break;
		}
		?>

J'ai mi en retrait la partie concernée.

pour $id, je vois pas comment et où dans mon code, elle pourrai être enregistré dans une session.
-1
okuni Messages postés 1325 Statut Membre 126
 
UP ^^
-1
okuni Messages postés 1325 Statut Membre 126
 
non en fait, la page compteur est incluse dans index.php donc pas besoin des balise html et body

Si quelqu'un d'autre a une idée, qu'il n'hésite pas.
-1