redirection erreur 404 .htaccess

Répondre
Bzh
le 13/04/2006 à 21:38
Bzh
Bonjours !

Besoin d'une tite aide là...

Je suis sur un site en ce moment où je redirige le navigateur lorsqu'il rencontre une erreur 404 !

Pour cela j'utilise le fichier .htaccess
ErrorDocument 404 /index.php


Bon jusqu'ici rien de très spectaculaire.

Mais dans la page acceuil, je voudrais ajouter un compteur et c'est là que je bloque !
<?php

$fp = fopen("./scripts/compteur_pages.inf","r+");
$compteur = fgets($fp,10);
$compteur++;
fseek($fp,0);
fputs($fp,$compteur);
fclose($fp);

?>


C'est normal qu'il ajoute 6 à chaque fois ? smiley Hein ? Non, ch'ui bien d'accord...

Mais le plus bizard, c'est que parfois il ajoute 6, une autre fois 3 une autre foi 9 etc...

Mais JAMAIS 1 !

Quelqu'un aurait une petite idée ???

Merci...
Bzh
le 14/04/2006 à 18:43
Bzh
Merci !
J'ai modifié le code comme tu l'as dis.
J'ai donc ouvert le fichier en binaire mais il y a toujours le même souci smiley !!!
<?php
$fp = fopen("./scripts/compteur_pages.inf","r+b");
$get = fgets($f,10);
$get++;
fseek($f,0);
fputs($f,$get);
fclose($f);
?>

Je me demande si cela ne viendrait pas du fait que le code se trouve dans une page qui est ouverte par le fichier .htaccess !

Ce qui m'intrigue c'est le résultat aléatoire ! Si seulement il pouvait ajouter toujours la même valeur...

Mais même pas...
bibi
le 15/04/2006 à 00:50
bibi
affiche $get apres le fgets, apres le $get++
pour voir d'ou viens le probleme.
commit suicide
Bzh
le 15/04/2006 à 15:52
Bzh
Donc j'ai fais ce que tu m'as dis, voici le code:
<?php

$f = fopen("./scripts/compteur_pages.inf","r+b");
$get = fgets($f,10);
echo $get;
$get++;
echo " ".$get;
fseek($f,0);
fputs($f,$get);
fclose($f);

?>


Et le résultat, chaque ligne correspond au rafraichissememt de la page:
0 1
8 9
16 17
24 25
32 33
40 41
48 49
56 57
64 65
72 73


Ah ! Donc enfet il y a un rappor de 8 entre chaque execution du script smiley !

Arf ! Là, je comprends vraiment rien...
bibi
le 15/04/2006 à 17:13
bibi
apres l'exécution du premier , dans ton fichier c'est 1 ou 8 ?
commit suicide
Bzh
le 15/04/2006 à 17:29
Bzh
Donc, histoire d'être clair, je commence tout d'abord par modifier le fichier en mettant 0 dedans.
Puis j'ouvre la page, je la ferme, et je regarde dans le fichier => 8 !

Donc après une exécution le fichier contient 8 !

Et bin, pour le cou je comprends rien du tout... A croire que la page est ouverte 8 fois en une fois... J'ai vérifié le script du compteur, il ne se trouve pas dans une boucle (on ne sait jamais smiley) ...

Merci beaucoup pour ton aide...
bibi
le 15/04/2006 à 19:43
bibi
le probleme vient donc soit du fseek, soit du fputs.
Quelle déduction digne de sherlock holmes vive moi. Sinon plus serieusement, essaye fwrite a la place de fputs on sait jamais ... Sinon j'avouerai que j'ai du mal a voir d'ou vient le probleme ...
commit suicide
Bzh
le 16/04/2006 à 13:22
Bzh
Bon donc j'ai modifié le script comme tu l'as proposé:
<?php

$f = fopen("./scripts/compteur_pages.inf","r+b");
$get = fread($f,10);
echo $get;
$get++;
echo " ".$get;
rewind($f);
fwrite($f,$get);
fclose($f);

?>


Enfin bon je suis vraiment sur le c**...

Impossible de savoir d'où ça vient...

En tout cas merci beaucoup de ton aide.
LupusMic
le 21/04/2006 à 16:55
LupusMic
Moi je sais d'où ça vient :-D C'est quoi la valeur ASCCI de \n ? Que fais fputs ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre
LoadingChargement en cours