Retour au site
Connexion : S'inscrire

7 messages
Filtrer ok
Bonjour,

je me suis créer grâce à un tuto sur le net un compteur graphique pour mon site ...
il marche impécablement sur la page accueuil mais dés que je change de page il m'affiche un msg d'erreur:
Warning: file(): Unable to access compteur.txt in /home/web/users/aslck/www/TEST/compteur.php on line 3

Warning: file(compteur.txt): failed to open stream: No such file or directory in /home/web/users/aslck/www/TEST/compteur.php on line 3


d'aprés ce que j'ai compris il n'arrive pas à acceder à mon fichier compteur.txt où est stocké ma valeur du compteur

mon code est le suivant [cpp]<?
$fichier = 'compteur.txt';
$fp = file($fichier);
$compteur = $fp[0] + 1;


// Connexion à MySQL
mysql_connect("****", "****", "****");
mysql_select_db("****");

// -------
// ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur

$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM compteur WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
$donnees = mysql_fetch_array($retour);

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
mysql_query('INSERT INTO compteur VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');

// om mets à jour le fichier compteur.txt
$nouveau = fopen($fichier,'w+');
fwrite($nouveau,"$compteur \n");
fclose($nouveau);

}


// -------
// ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 24 heures

// On stocke dans une variable le timestamp qu'il était il y a 24 heures :
$timestamp_5min = time() - (3600 * 24); // 3600 * 24 = nombre de secondes écoulées en 24 heures
mysql_query('DELETE FROM compteur WHERE timestamp < ' . $timestamp_5min);



// Ouf ! On n'a plus qu'à afficher le nombre de connectés !

if ($fp[0] < 100000)
echo ('<img src="/img/0.gif" border="1" style="border-color: #FFFFFF;">');
if ($fp[0] < 10000)
echo ('<img src="/img/0.gif" border="1" style="border-color: #FFFFFF;">');
if ($fp[0] < 100000)
echo ('<img src="/img/0.gif" border="1" style="border-color: #FFFFFF;">');
if ($fp[0] < 1000)
echo ('<img src="/img/0.gif" border="1" style="border-color: #FFFFFF;">');
if ($fp[0] < 100)
echo ('<img src="/img/0.gif" border="1" style="border-color: #FFFFFF;">');
if ($fp[0] < 10)
echo ('<img src="/img/0.gif" border="1" style="border-color: #FFFFFF;">');


$compteur = preg_replace("#([0-9])#s", '<img src="/img/$1.gif" border="1" style="border-color: #FFFFFF;">',$compteur);
echo "$compteur";



mysql_close(); // Déconnexion de MySQL
?>[/cpp]

Merci de votre aide ...

   Php
 
 
Ca depend ou tu as mis ton fichier compteur , il faut joué avec les ../ , chaque ../ fait un présédent
[fixed]Compteur.txt
Dossier 1
Scriptcompteur.php => Il faut utilise ../compteur.txt
Dossier 2
Scriptcompteur.php => Il faut utilise ../../compteur.txt
[/fixed]

Je sais pas si tu vois .
 
 
oui je vois ... mais en fait il faudré que je mette le script dans chacun de mes dossiers ?

en fait là il se trouve à la racine et il est présent sur chaque page grace au " include " pour mes menus...

donc ce n'est pas possible de modifier le script à chaque fois vu qu'il est unique ...
 
 
$fichier = '/home/web/users/aslck/www/compteur.txt';
 
 
ou plus simple : utiliser les variables de base, dont PHP_SELF , et comparer le dossier courant avec le dossier du fichier compteur.txt
Modérateur Logiciel - Programmation
 
 
Bonjour et merci pour vos reponses ...

==> aspect : merci j'y avais pas penser !! ça marche nikel maintenant

==> Sans-Nom : ça a un interet d'utiliser cette fonction pour un truc aussi simple ??

en tout cas merci bien !
 
 
Hé, c'est simple : ça évite d'avoir du caca et ça peut reservir. Le mieux reste $_SERVER['DOCUMENT_ROOT']

cf. http://www.php.net/source.php?url=/include/prepend.inc
Modérateur Logiciel - Programmation
 
 

|
 
7 messages
Un expert informatique vous aide immédiatement par téléphone.
Filtrer ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires: