AIDE PHP

Résolu
SitHamster -  
 SitHamster -
Bonjour,
J'essaie de créer un compteur (par exemple pour le nombre de visiteurs d'un site). Dans le code qui suit, la phase 1 marche (a chaque ouverture du fichier php, je recupère un nombre stocké dans un .txt, je l'incrémente, affiche "vous etes le n-ieme visiteur et je remplace le nombre du .txt par sa nouvelle valeur.
Maintenant, j'essaie de lire dans le fichier, après l'incrémentation, ce qu'il contient caractère par caractère. Le but, c'est de récupérer la valeur de chaque caractère du .txt et d'afficher une image qui lui correspond (de 0 a 9, en .jpg)
PB : rien ne s'affiche!

mon code:
<?php /* Date de création: 30/09/2008 */ ?>
<html>
<body>
<?php
$i="";
$file=fopen("compteur.txt","r");
while (!feof($file))
$i.=fgets($file);
$i++;
?>
<p>Vous êtes le
<?php echo ($i);
?>
<sup>ème</sup> visiteur</p>
<?php
fclose($file);
$file=fopen("compteur.txt","w");
fputs($file,"$i");
fclose($file);

$k="";
$file=fopen("compteur.txt","r");
for($j=0;$j<(strlen($file));$j++)
{
$k=substr($file, $j,$j+1);
control();
?><img src="<?php print($image) ?>"/><?php
}
function control()
{
if($k==0)
$image="C:/wamp/www/chiffres/zero.jpg";
else
if($k==1)
$image="C:/wamp/www/chiffres/un.jpg";
else
if($k==2)
$image="C:/wamp/www/chiffres/deux.jpg";
else
if($k==3)
$image="C:/wamp/www/chiffres/trois.jpg";
else
if($k==4)
$image="C:/wamp/www/chiffres/quatre.jpg";
else
if($k==5)
$image="C:/wamp/www/chiffres/cinq.jpg";
else
if($k==6)
$image="C:/wamp/www/chiffres/six.jpg";
else
if($k==7)
$image="C:/wamp/www/chiffres/sept.jpg";
else
if($k==8)
$image="C:/wamp/www/chiffres/huit.jpg";
else
if($k==9)
$image="C:/wamp/www/chiffres/neuf.jpg";

}
?>
</body>
</html>

Non seulement le navigateur m'affiche le symbole d'un fichier cassé (une feuille déchirée, alors que les images vont très bien) mais en plus il m'en mets 14 alors que dans mon essai le fichier txt contient '162' (3 chiffres donc)

Qui pourrait m'aider svp?
A voir également:

22 réponses

DelepY
 
j'ai repérer 2 erreurs :

1- la fonction Substr:
string substr( string $string, int $start [, int $length ] )

>> $m=substr($k, $j, 1);

2- l'accées au variable $m, $image dans ta fonction control() :
par défaut, une fonction n'as pas accès aux variable globales, sauf si tu le déclare comme suit :

>>
function control()
{ global $m, $image;
if($m==...)
$image=...
}

la prochaine fois, édite le code source coté client, et tu verras que tes suites d'image appelle la page php, donc que $m n'as pas de valeur !!

*- je te conseille d'utiliser un chemin relatif à ta page PHP (le chemin relatif permet de ne pas avoir d'erreur l'or du déménagement du site sur un autre serveur)
0
SitHamster
 
Merci a Delepy et aux autres, le code tourne bien (même si j'ai du me battre avec mes ouvertures et fermetures de balises php qui foutaient la m...pb résolu.
0