Hello les php codeurs,
Juste un petit blème tout simple (mais vu mon niveau en php, ca devient une montagne). Voila, j'ai un petit script "compteur.php" qui me compte le nombre de connectés sur un site en utilisant un petit fichier "compteur.txt".
A la sortie j'ai la variable $onlinecount qui contient le nombre et je l'affiche ou je veux.
J'aimerais ajouter les quelques lignes qui vont faire cela :
Voila c'est tout bébête (à la sortie je peux utiliser mes 3 variables dans tous les cas (record battu ou pas). Pour me simplifier la lecture, ca serait bien de rajouter ca à la fin du script actuel et pas de le noyer au millieu. ki ki peut me faire ca sur un coin de table ? :wink:
Juste un petit blème tout simple (mais vu mon niveau en php, ca devient une montagne). Voila, j'ai un petit script "compteur.php" qui me compte le nombre de connectés sur un site en utilisant un petit fichier "compteur.txt".
Code:
<?php
function isBots()
{
$bots=array('72.14.192'=>1, '72.14.192'=>1, '66.249.72'=>1, '66.249.66'=>1, '66.249.65'=>1,
'64.233.173'=>1, '216.239.58'=>1, '65.55.246'=>1, '65.55.235'=>1, '65.54.188'=>1, '64.4.8'=>1,
'207.68.157'=>1, '207.68.146'=>1, '207.46.98'=>1, '207.46.98'=>1, '72.30.99'=>1, '72.30.98'=>1,
'72.30.97'=>1, '72.30.61'=>1, '72.30.252'=>1, '72.30.226'=>1, '72.30.221'=>1, '72.30.216'=>1,
'72.30.215'=>1, '72.30.214'=>1, '72.30.177'=>1, '72.30.135'=>1, '72.30.134'=>1, '72.30.133'=>1,
'72.30.132'=>1, '72.30.131'=>1, '72.30.129'=>1, '72.30.128'=>1, '72.30.111'=>1, '72.30.110'=>1,
'72.30.107'=>1, '72.30.104'=>1, '72.30.103'=>1, '72.30.102'=>1, '72.30.101'=>1, '68.142.251'=>1,
'68.142.250'=>1, '68.142.249'=>1, '68.142.212'=>1, '66.94.238'=>1, '66.94.237'=>1, '66.94.232'=>1,
'66.196.91'=>1, '66.196.65'=>1, '213.251.136'=>1, '194.3.104'=>1, '190.57.10'=>1, '140.94.82'=>1,
'193.252.148'=>1, '193.252.118'=>1, '64.233.182'=>1);
$shortip = explode(".",$_SERVER['REMOTE_ADDR']);
array_pop($shortip);
$shortip = implode(".",$shortip);
if (isset($bots[$shortip])) return true;
return false;
}
if (!file_exists($_SERVER['DOCUMENT_ROOT']."/".$dossier_compteur."/compteur.txt")) $compteur_live = array();
else $compteur_live = file($_SERVER['DOCUMENT_ROOT']."/".$dossier_compteur."/compteur.txt");
$premiere_ligne_a_garder=-2;
do $premiere_ligne_a_garder=$premiere_ligne_a_garder+2;
while((date('U', strtotime('-300 seconds')) > $compteur_live[$premiere_ligne_a_garder]) && ($premiere_ligne_a_garder < count($compteur_live)));
if(isset($_SERVER["REMOTE_ADDR"])) $ip_en_cours = $_SERVER["REMOTE_ADDR"];
else $ip_en_cours = "Non identifiable";
$compteur = "";
$onlinecount = 0;
if($premiere_ligne_a_garder < count($compteur_live))
{
for($i=$premiere_ligne_a_garder; $i<count($compteur_live); $i=$i+2)
{
if(trim($compteur_live[$i+1]) != $ip_en_cours)
{
$compteur .= trim($compteur_live[$i])."\n".trim($compteur_live[$i+1])."\n";
$onlinecount++;
}
}
}
if (!isBots())
{
$compteur .= date('U')."\n".$ip_en_cours;
$onlinecount++;
}
$pointeur=fopen($_SERVER['DOCUMENT_ROOT']."/".$dossier_compteur."/compteur.txt","w");
fputs($pointeur,$compteur);
fclose($pointeur);
echo $onlinecount;
?>
A la sortie j'ai la variable $onlinecount qui contient le nombre et je l'affiche ou je veux.
J'aimerais ajouter les quelques lignes qui vont faire cela :
Code:
1 - ouvrir un fichier "record.txt" (on part du principe qu'il existe)
2 - lire son contenu (un nombre sur la premiere ligne, une date sur la seconde ligne, une heure sur la troisieme ligne)
3 - ranger les infos dans $onlinerecord; $daterecord; $heurerecord
si($onlinecount > onlinerecord)
- mettre a jour records.txt avec nombre, date et heure
- ranger les nouvelles infos dans $onlinerecord; $daterecord; $heurerecord
fin de si
Voila c'est tout bébête (à la sortie je peux utiliser mes 3 variables dans tous les cas (record battu ou pas). Pour me simplifier la lecture, ca serait bien de rajouter ca à la fin du script actuel et pas de le noyer au millieu. ki ki peut me faire ca sur un coin de table ? :wink: