aide : problème pour un compteur de visiteur sur un site

aide : problème pour un compteur de visiteur sur un site - PHP - Programmation

Marsh Posté le 31-12-2004 à 15:03:03    

Hello à tous,
 
Je voulais savoir si quelqu'un pourrait m'aider avec mon compteur de visiteur. Je suis en train de faire mon site et j'ai trouvé ce que je devais mettre comme langage sur mes pages php pour un compteur mais cela ne marche pas alors est-ce que quelq'un peut m'aider.
 
Alors voici ma page connectes.php :
 
<html>
<head>
 <title></title>
</head>
 
<body>
<?php
// ------------------------------------------------------------------------- //
// Compteur de connectés //
// ------------------------------------------------------------------------- //
// Auteur: Merckel Loïc //
// Web: http://www.merckel.org/spip //
// ------------------------------------------------------------------------- //
 
/*
Ce script permet de connaître le nombre de visiteurs connectés sur une période
de temps donnée (i.e. permet de savoir combien il y a de visiteurs en ligne).
Ce script n'utilise pas de base de données. Il stocke les informations dans un
fichier .dat */
 
// $time est le temps en seconde à partir duquel on considère que
// le visiteur n'est plus connecté
 
// $text_color est la couleur d'affichage du compteur
 
// $filename est le nom du fichier créé pour stocker les informations
 
function nb_visiteurs_connecte($time,$text_color,$filename="data.dat" )
{
$ip = getenv("REMOTE_ADDR" );
$date=time();
 
$i=0;
$ii=0;
$bool=0;
 
if(file_exists($filename))
{
if($fichier=fopen($filename,"r" ))
{
while(!feof($fichier))
{
$ligne=fgets($fichier,4096);
$tab=explode("|",$ligne);
 
if($tab[1]>0)
{
$tab_de_tab[$i][0]=$tab[0];
$tab_de_tab[$i][1]=$tab[1];
 
$i++;
}
}
fclose($fichier);
}
}
 
for($j=0;$j<$i;$j++)
{
if(($date-chop($tab_de_tab[$j][1]))>$time)
{
//on ne fait rien
}
else
{
$tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0];
$tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]);
$ii++;
}
}
 
for($j=0;$j<$ii;$j++)
{
if($tab_de_tab_actualise[$j][0]==$ip)
{
$bool=1;
}
}
 
if($bool==0)
{
$tab_de_tab_actualise[$ii][0]=$ip;
$tab_de_tab_actualise[$ii][1]=$date;
$ii++;
}
 
if($fichier=fopen($filename,"w" ))
{
for($j=0;$j<$ii;$j++)
{
fputs($fichier,chop($tab_de_tab_actualise[$j][0]));
fputs($fichier,"|" );
fputs($fichier,chop($tab_de_tab_actualise[$j][1]));
fputs($fichier,"\n" );
}
 
fclose($fichier);
}
 
echo "<font color=\"",$text_color,"\"><b>",$ii,"</b> visiteurs<br>connectés</font>";
}
 
// vous pouvez changer les paramètres suivant (attention le temps est en
// secondes - 600 ici)
 
nb_visiteurs_connecte(600,"blue" );
 
?>
 
 
 
 
</body>
 
</html>
 
et ma page d'accueil j'insère ceci:
 
<?
include "connectes.php";
?>
 
Apparemment il y aurait un problème sur la page connectes.php autour de ça :
$ligne=fgets($fichier,4096);
$tab=explode("|",$ligne);
 
if($tab[1]>0)
 
On m'a dit erreur vers la ligne 46 qui est celle là : if($tab[1]>0) mais je sais que cela peut être au dessus ou même en dessous.
 
Bref! Est-ce que quelqu'un pourrait tester cela et m'éclairer svp??
 
Merci beaucoup pour votre aide.
 
Patty  :hello:

Reply

Marsh Posté le 31-12-2004 à 15:03:03   

Reply

Marsh Posté le 31-12-2004 à 15:29:32    

c'est quelle erreur ?

Reply

Marsh Posté le 31-12-2004 à 16:57:53    

Citation :

j'ai trouvé ce que je devais mettre comme langage sur mes pages php


 [:kiki]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 31-12-2004 à 17:36:25    

http://mapage.noos.fr/berceker_united/phpman2.jpg

Reply

Marsh Posté le 31-12-2004 à 17:48:56    

Alors il n'y a pas d'erreur? moi ça ne marche pas, on me dit qu'il y a une erreur à la ligne 46 mais je ne trouve pas.
Alors que faire?

Reply

Marsh Posté le 31-12-2004 à 17:50:17    

sircam a écrit :

Citation :

j'ai trouvé ce que je devais mettre comme langage sur mes pages php


 [:kiki]


 
Désolée je n'arrivais pas à m'expliquer, je voulais dire ce que je devais mettre sur ma page pour avoir un compteur de visiteurs.
Ce n'est pas évident de s'expliquer....  :sweat:

Reply

Marsh Posté le 31-12-2004 à 17:52:23    

Patty62 a écrit :

Alors il n'y a pas d'erreur? moi ça ne marche pas, on me dit qu'il y a une erreur à la ligne 46 mais je ne trouve pas.
Alors que faire?


Mais que dit cette erreur?  
Utilise la balise[ cpp ]ton code[ cpp ] pour que je puisse voir.


Message édité par Berceker United le 31-12-2004 à 17:52:53
Reply

Marsh Posté le 31-12-2004 à 17:58:53    

Berceker United a écrit :

Mais que dit cette erreur?  
Utilise la balise[ cpp ]ton code[ cpp ] pour que je puisse voir.


 
Je ne comprends plus rien, je n'ai rien fait de spécial et j'ai recopié sur ma page tout le script et là ça marche. ah l'informatique...
 
Mais bon j'aimerai comprendre pourquoi c'est écrit visiteurs et en dessous connectés. Je me demande comment faire pour mettre ma phrase sur une seule ligne, ça serait mieux.
 
Mais en tout cas merci.
 
Patty

Reply

Marsh Posté le 31-12-2004 à 18:07:09    

Enlève le <br> entre les deux.

Reply

Marsh Posté le 31-12-2004 à 18:42:35    

Berceker United a écrit :

Enlève le <br> entre les deux.


 
Merci beaucoup, mais que suis-je bête quand même. Je n'ai pas encore réveillonnée alors qu'es-ce que ça va être après lol!!!
 
Sinon si tu peux me dire où je peux marquer align=right car je veux que ma ligne (visiteurs connectés) soit sur la droite de mon tableau.  
 
Merci et un bon réveillon
 
Patty  :hello:

Reply

Marsh Posté le 31-12-2004 à 18:42:35   

Reply

Marsh Posté le 31-12-2004 à 18:59:14    

essais ça :

Code :
  1. echo '<span style="color:'.$text_color.';align:right"><b>$ii</b>visiteurs connectés</span>';


 
ou

Code :
  1. echo '<table align="right"><tr><td style="'.$text_color.'"><b>'.$ii.'</b> visiteurs connectés</td></tr></table>';


 
Regarde si avec ça sa fonctionne.

Reply

Marsh Posté le 31-12-2004 à 19:16:31    

Berceker United a écrit :

essais ça :

Code :
  1. echo '<span style="color:'.$text_color.';align:right"><b>$ii</b>visiteurs connectés</span>';


 
ou

Code :
  1. echo '<table align="right"><tr><td style="'.$text_color.'"><b>'.$ii.'</b> visiteurs connectés</td></tr></table>';


 
Regarde si avec ça sa fonctionne.


 
Merci encore car le deuxième code marche mais dis moi pourquoi la couleur bleu de "visiteurs connectés" est parti? J'aimais mieux quand c'était en bleu ;-)

Reply

Marsh Posté le 31-12-2004 à 19:22:24    

il faut mettre un diese => #'.$text_color.'

Reply

Marsh Posté le 31-12-2004 à 19:32:33    

Berceker United a écrit :

il faut mettre un diese => #'.$text_color.'


 
Merci mais ça reste toujours normal et pas en couleur bleue

Reply

Marsh Posté le 31-12-2004 à 19:46:51    

Patty62 a écrit :

Merci mais ça reste toujours normal et pas en couleur bleue


regarde le code source de ta page et dit moi ce qu'il y ou donne moi l'url.

Reply

Marsh Posté le 31-12-2004 à 22:08:18    

Berceker United a écrit :

regarde le code source de ta page et dit moi ce qu'il y ou donne moi l'url.


 
Comme mon site n'est pas encore mis en ligne, je te donne le code source de la page connectes.php :
 
<html>
<head>
 <title></title>
</head>
 
<body>
<?php
// ------------------------------------------------------------------------- //
// Compteur de connectés //
 
/*
Ce script permet de connaître le nombre de visiteurs connectés sur une période
de temps donnée (i.e. permet de savoir combien il y a de visiteurs en ligne).
Ce script n'utilise pas de base de données. Il stocke les informations dans un
fichier .dat */
 
// $time est le temps en seconde à partir duquel on considère que
// le visiteur n'est plus connecté
 
// $filename est le nom du fichier créé pour stocker les informations
 
function nb_visiteurs_connecte($time,$text_color,$filename="data.dat" )
{
$ip = getenv("REMOTE_ADDR" );
$date=time();
 
$i=0;
$ii=0;
$bool=0;
 
if(file_exists($filename))
{
if($fichier=fopen($filename,"r" ))
{
while(!feof($fichier))
{
$ligne=fgets($fichier,4096);
$tab=explode("|",$ligne);
 
if($tab[1]>0)
{
$tab_de_tab[$i][0]=$tab[0];
$tab_de_tab[$i][1]=$tab[1];
 
$i++;
}
}
fclose($fichier);
}
}
 
for($j=0;$j<$i;$j++)
{
if(($date-chop($tab_de_tab[$j][1]))>$time)
{
//on ne fait rien
}
else
{
$tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0];
$tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]);
$ii++;
}
}
 
for($j=0;$j<$ii;$j++)
{
if($tab_de_tab_actualise[$j][0]==$ip)
{
$bool=1;
}
}
 
if($bool==0)
{
$tab_de_tab_actualise[$ii][0]=$ip;
$tab_de_tab_actualise[$ii][1]=$date;
$ii++;
}
 
if($fichier=fopen($filename,"w" ))
{
for($j=0;$j<$ii;$j++)
{
fputs($fichier,chop($tab_de_tab_actualise[$j][0]));
fputs($fichier,"|" );
fputs($fichier,chop($tab_de_tab_actualise[$j][1]));
fputs($fichier,"\n" );
}
 
fclose($fichier);
}
 
echo '<table align="right"><tr><td style="#'.$text_color.'"><b>'.$ii.'</b> visiteurs connectés</td></tr></table>';
 
}
 
 
nb_visiteurs_connecte(600,"blue" );
 
?>
 
 
 
 
</body>
 
</html>
 
 
Mais je ne sais pas si c'est celle là que tu veux, puisque que je fais un include dans une autre page, qui est pa lage d'accueil en fait.
 
Dis moi si ça te va ou pas. Merci. Patty

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed