Compteur de visites en Php

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 visites en Php

par kiss20 » 21 août 2006, 16:17

Merci à tous pour votre aide.
Tu avais raison arthur, le problème venait des guillemets.
Je te remercie.

par aelurus » 21 août 2006, 10:17

Ha non du tout j'ai pas recopié le meme nom de variable c tout ^^ je ferais gaff le prochain coup:), par contre j'avais pas fait le raprochement avec le type du champ de la table

par @rthur » 21 août 2006, 10:09

Ha oui autant pour moi mauvais sens pour les guillemet :'(
Ah je croyais que ta réponse était pour le nom de la variable (remote au lieu de remote_addr) et non pour les guillemets!

par aelurus » 21 août 2006, 09:54

Ha oui autant pour moi mauvais sens pour les guillemet :'(

par @rthur » 21 août 2006, 09:42

mysql_query('INSERT INTO compteur VALUES('. $_SERVER['REMOTE_ADDR']. ',' .time() .')'); 
je pense que c'est dans cette ligne le soucis
"'.$_server['remote'].'"
regarde avec sa si je ne me trompe pas
Je pense que tu te trompes.

Le problème vient du fait que le champ SQL dans lequel tu stockes l'adresse IP est probablement un varchar ou char. Il faut donc que tu mettes l'ip entre guillemet dans ta requète.

exemple:
mysql_query("SELECT COUNT(*) AS nbre_entrees FROM compteur WHERE ip= '" . $_SERVER['REMOTE_ADDR']."'") or die (mysql_error());
idem pour les autres requêtes :)

par aelurus » 20 août 2006, 23:36

mysql_query('INSERT INTO compteur VALUES('. $_SERVER['REMOTE_ADDR']. ',' .time() .')'); 
je pense que c'est dans cette ligne le soucis
"'.$_server['remote'].'"
regarde avec sa si je ne me trompe pas

par aelurus » 20 août 2006, 23:28

Une chose a toujours faire je dirais avec les requettes sql c'est de les faire d'abord dans phpmyadmin histoire de voir si c bon en plus tu y trouvera plus d'info

Compteur de visites en Php

par kiss20 » 20 août 2006, 23:05

Salut

Je suis en train de réaliser un compteur de visites en php mais j'ai un petit problème.
J'ai le message suivant :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.88.699' at line 1
Les chiffres correspondent à mon adresse ip.

Voici maintenant mon script:
<?php
mysql_connect("localhost", "login", "mot_de_passe"); // connexion à  MySQL
mysql_select_db("base_de_donnees"); 


// ETAPE 1 : On verifie si l'IP se trouve dans la table.

$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM compteur WHERE ip= ' . $_SERVER['REMOTE_ADDR']) or die (mysql_error()); // On compte le nombre d'entrées qu'il y a dans le champ "ip".
$donnees = mysql_fetch_array($retour);

if ($donnees['nbre_entrees'] == 0) // Si l'ip ne se trouve pas dans la table, alors on va l'ajouter.
{
	mysql_query('INSERT INTO compteur VALUES('. $_SERVER['REMOTE_ADDR']. ',' .time() .')');
}
else // Si l'ip  existe déja, on  met à jour le timestamp.
{
	mysql_query('UPDATE compteur SET timestamp= ' .time() . ' WHERE ip= ' .$_SERVER['REMOTE_ADDR']);
}

//ETAPE 2 : On supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes.
// Si un visiteur n'a pas chargé de nouvelles pages sur le site depuis plus de 5 minutes alors on considère qu'il est parti.


$timestamp_5min = time() - (60 * 5); // 60*5 =  nombre de secondes ecoulées en 5 minutes.
mysql_query("DELETE FROM compteur WHERE timestamp < $timestamp_5min");


// ETAPE 3 : On compte le nombre d'entrées dans la table

$count = mysql_query("SELECT COUNT(*) AS nbre_connectes FROM compteur");
$donnees = mysql_fetch_array($count);
?>

<p<Il y a actuellement <?php echo $donnees['nbre_connectes'];?> connectés.</p>

<?php
mysql_close();
?>
Si quelqu'un pouvait m'aider, merci d'avance.