compteur live bloqué sur 1 visiteur

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 live bloqué sur 1 visiteur

par DocType » 26 sept. 2005, 22:10

petit script à moi:

table en bdd (requete sql)

Code : Tout sélectionner

CREATE TABLE `connections_on` ( `ip` text collate latin1_general_ci NOT NULL, `temps` bigint(20) unsigned NOT NULL default '0' )
nbre_visiteur.php
<?
if (defined("MON_SITE"))	{
	/* Nbre connectés */
	$date_connect = date("U");
	$delai_time = $date_connect - 600;
	mysql_query("DELETE FROM connections_on WHERE temps<".$delai_time);
	$result_connect = mysql_query("SELECT ip FROM connections_on WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
	if ($result_connect != FALSE)	{
		if (mysql_num_rows($result_connect) != 0)	{
			mysql_query("UPDATE connections_on SET temps=".$date_connect." WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
		}	else	{
			mysql_query("INSERT INTO connections_on (ip,temps) VALUES ('".$_SERVER['REMOTE_ADDR']."','".$date_connect."')");
		}
		$result_connect = mysql_query("SELECT ip FROM connections_on");
		if ($result_connect != FALSE)	{
			if (mysql_num_rows($result_connect) == 1)	{
				$connect_live = "1 connecté";
			}	else	{
				$connect_live = mysql_num_rows($result_connect)." connectés";
			}
		}	else	{
			$connect_live = "<font color='#FF0000'>erreur</font>";
		}
	}	else	{
		$connect_live = "<font color='#FF0000'>erreur</font>";
	}
	/* Fin nbre connectés */
}	else	{
	header('Location: index.php');
}
?>
Ajouter à la page index et à toutes les pages où l'on doit compter le nbre de visiteurs
define("MON_SITE",TRUE);
include('nbre_visiteurs.php');
Le nombre de visiteurs sera la variable $connect_live

par Cyrano » 26 sept. 2005, 22:03

Un script PHP n'est pas autonome : pour être exécuté, il faut que la page qui le contient soit appelée par un internaute.

par Invité » 26 sept. 2005, 12:07

il compte mais il se remet pas a zero au bout de cinq minute

par HD » 26 sept. 2005, 11:16

// Garder ce visiteur, sauf si c'est celui qui est en train de recharger
// une page (ceci afin déviter les doublons).
mais bon, attend que qq1 aie testé ton code pour voir...

par Invité » 26 sept. 2005, 11:13

je pense pas parce que le resultat des visite je les mis sur l'admin donc une page sans include,que le resultat.

par HD » 26 sept. 2005, 10:32

si c'est toi qui teste c'est normal car ton ip compte pour une seule et unique visite quelque soit le nombre de fois où tu ouvre cette page

par Invité » 26 sept. 2005, 10:30

j'ai oublié de dire que je suis chez free j'ai vue sur certain forum que sa avait une influence, peut etre.

compteur live bloqué sur 1 visiteur

par Invité » 26 sept. 2005, 10:28

bonjours a tous je comprend pas mon compteur reste bloqué sur 1 visiteur le code n'est pas a moi,ensuite je fais un include sur toute mes pages.merci d'avance
$compteur_live = file("../../compteur-live/compteur-live.txt");
// -----------------------------------------------------------------------------------
// On détermine quels sont les visiteurs à éliminer
// (ceux dont la dernière connexion date de plus de 5 minutes).
$premiere_ligne_a_garder=-1; // valeur virtuelle. Sera 0 au 1er passage dans la boucle...
do { // On boucle jusqu'à trouver le premier visiteur à ne pas eliminer, ou la fin de fichier.

$premiere_ligne_a_garder=$premiere_ligne_a_garder+2; // visiteur suivant

} while((date('U', strtotime('-300 seconds')) > $compteur_live[$premiere_ligne_a_garder]) && ($premiere_ligne_a_garder < count($compteur_live)));
// 300 secondes = 5 minutes. Cette durée est modifiable.
// -----------------------------------------------------------------------------------
// On lit l'adresse IP du visiteur qui est en train de charger une page
if(isset($_SERVER["REMOTE_ADDR"])) { // Si on peut déterminer l'adresse IP

$ip_en_cours = $_SERVER["REMOTE_ADDR"];

}
else { // sinon

$ip_en_cours = "Non identifiable";

}
// -----------------------------------------------------------------------------------
// on reconstitue le futur contenu du fichier dans la variable $compteur
$compteur = "";
if($premiere_ligne_a_garder < count($compteur_live)) { // des visiteurs à ne pas éliminer?

// Pour tous les visiteurs inscrits dans le fichier à ne pas éliminer...
for($i=$premiere_ligne_a_garder; $i<count($compteur_live); $i=$i+2) {

// Garder ce visiteur, sauf si c'est celui qui est en train de recharger
// une page (ceci afin déviter les doublons).
if(trim($compteur_live[$i+1]) != $ip_en_cours) {

$compteur .= trim($compteur_live[$i])."\n".trim($compteur_live[$i+1])."\n";

}

}

}
// -----------------------------------------------------------------------------------
// Enfin on ajoute le visiteur qui est en train de se connecter
$compteur .= date('U')."\n".$ip_en_cours;
// -----------------------------------------------------------------------------------
// Et on écrit le tout dans le fichier
$pointeur=fopen("../../compteur-live/compteur-live.txt","w");
fputs($pointeur,$compteur);
fclose($pointeur);