Page 1 sur 1
php et html =bizarre mais php seul = okay !
Publié : 14 avr. 2005, 18:29
par utilisateur ff
bonjour a tous,
j'utilise un petit script en php pour faire un compteur a l'aide d'un fichier texte.
exemple: 0 ecrit dans le fichier, le script ajoute 7 et le fichier contient 7 !
Super c'est ce que je veux, mais voilà derriere ça je veux afficher une page (xhtml ou html et css) et j'ai un probleme.
en appelant la page contenant le script puis le html selon les navigateurs je n'obtiens pas le même résultat dans mon fichier (alors qu'avec le script seul, pas de difference)
bon avec firefox je lance le script et j'obtiens 28 dans le fichier (3x7 de trop)
avec mozilla j'obtiens 14 (1x7 de trop )
avec internet explore 7 !
le script seul dans tout les navigateurs j'obtiens 7 !
voila mon script tout bete
le code php
*****
$ajout=7;//ce que je veux ajouter
$fichier ="fichier.txt";//le fichier a ouvrir
$fp=fopen("$fichier","r+");/ouverture en lecture ecriture
$a=fgets($fpkit,255);//recuperation du contenu du fichier
$a=$a+($ajout) ;//j'ajoute 7 au contenu
fseek($fp,0); //je reviens sur la premiere ligne du fichier
fputs($fp,$a); //et j'ecrase le contenu par le resultat de l'addition
fclose($fp);
****
fin du code php (qui seul fonctionne partout)
ajout de contenu html(1 formulaire et du blabla) apres le php (ou dans le php avec la fonction echo)
Ce qui pertube ff et mz !
Pourquoi firefox semble execute 4 fois le code et mozilla 2 fois
Je precise que j'ai jalonne le script de "echo $a" pour en suivre le deroulement
avec ff il affiche 14 quand on devrait encore etre a zero, ajoute 7 et affiche 21, et dans le fichier il est ecrit 28.
avec mozilla, il m'affiche 0 a la lecture du contenu et ajoute 7 en affichant 7 quand dans le fichier il est ecrit 14 !
Ie affiche 0 pour zero, 7 pour 7 et 7 dans le fichier.
experience tenter maintes fois en changeant le nom des variables, repertoires different pour chaque navigateurs, etc... (et sur mon espace web ! idem)
ALors qu'est ce qui cloche avec ff et mozilla
Publié : 14 avr. 2005, 18:45
par PsyDk
Tu pourrais mettre un lien vers le fichier source s'il te plait ?
Publié : 14 avr. 2005, 19:23
par utilisateur ff
http://gcyrillus.free.fr/site/essai.php
voila le truc avec des echo pour suivre l'evolution du script.
merci de ton interet
gcyrillus utilisateur ff
Publié : 14 avr. 2005, 21:21
par calimo
Ça c'est pas le fichier source, on obtient le fichier déjà interprété

Donne-nous le code source complet
Le php c'est un truc interprété sur le serveur. Le navigateur n'a rien à voir, il fait simplement une requête HTTP, le serveur la traite et envoie du HTML. Donc il y a un souci du côté du serveur

Publié : 14 avr. 2005, 21:50
par Invité
okay, le source il est dans le premier post !
pour le html derriere une balise du blabla on ferme la balise un formulaire classique et c'est tout ET ça suffit chez moi a me rendre fou !

( je me repete car la est mon probleme

:sans html derriere ça marche nickel. )
sinon as tu tester le fichier avec ton explorateur ?et retrouve tu les mêmes bizarrerie que j' ai.?
Quand au resultat afficher par echo. ( les lignes jusqu'a "fin" aprés c'est du html.)
Je suis sur de mon bout de code car je l'utilise depuis lquelque temps dans d'autre page sans erreurs !
Cette bizarrerie apparait uniquement lorsque j'utilise firefox ou mozilla , en local ou sur le serveur de free mon hebergeur.
je n'ai pas trouvé sur mon pc de virus, troyen ou spyware qui provoquerais cela, c'est pour ça que je me tourne vers ce forum.
Autrement dit un probleme similaire a t-il déja étè rencontré, si oui quel en etait la ou les causes, a défault quel sont les causes probables ? Avez vous une piste que je peut essayer d'exploré

?.
Je suis amateur

et je me suis lancer dans le php il y a 3 mois, je m'essaie au xhtml , j'ai un emploi dans l'hotellerie a plein temps,blabla... Mais sur ce truc bizarre je butte depuis 3 jours.

Publié : 14 avr. 2005, 22:32
par calimo
Bon, a priori je ne vois pas de raison. C'est pour ça que j'aimerais pouvoir voir le code complet de ta page "essai.php", parce qu'il doit y avoir un truc quelque part, forcément ! Et ce genre de trucs on ne les voit pas sur un petit bout de code comme ça

Publié : 14 avr. 2005, 22:43
par Invité
Rebonjour,
je crois bien avoir eu question a ma reponse
extrait de l'explication qui m'a ete donné sur le forum d'aspphp.net
...j'ai vu que avec FF et mozilla sur des pages PHP avec apache il apelle plusieur fois la page php, donc ton code s'execute plusieurs fois... C'est une histoire de page cachable ou non dans mozilla/firefox compare a IE. C'est aussi une histoire de chargement des css, images et autres qui necessite des requetes supplementaire de la page php sur le serveur apache. J'ai pas tout suivi mais je resume en gros:)
morale de l'histoire: passe a IIS ou change de methode:) met dans une session le nombre de fois que la page est exectuee (compteur) et si le compteur vaut initialement 0, tu execute reelement ton script via un IF.
fin de l'extrait .
je te laisse l'url du forum ou j'ai commencer a exposer mon probleme hier (pour info)
http://www.asp-php.net/forum.php?resum=no&numsg=102841
apres avoir reduit au minimum le code et ou ça commencé a bugger
Merci encore de ton interet.
Je ne sais pas encore comment je vais faire pour obtenir ce que je cherche a obtenir,je n'ai pas de delai alors je m'inquiete pas trop .
bonne soirée
Publié : 14 avr. 2005, 22:55
par utilisateur ff gcyrillus
http://gcyrillus.free.fr/site/essai.txt
j'oublié, le source du truc qui me taquine !
a plus
Publié : 15 avr. 2005, 01:08
par PsyDk
Code : Tout sélectionner
echo "<div >
<br/><p>coucou</p><hr style=\"width: 90%; height: 2px; align:center;\">
<div class=\"kitvu\"><span style=\"float:left;\"> <img height=\"72px\" width=\"104px\" src=\"onk\"/>
</span><span style=\"float:left; \">
<p>fichier telecharger ";
Le problème vient de <img height=\"72px\" width=\"104px\" src=\"\"/>
Le fait d'avoir le src à "" (vide) rappelle la page. Par conséquent tu te retrouves avec un appel récursif. Ça va appeler deux fois la page, voire davantage.
Change le src par "plop" par exemple, le serveur enverra une erreur 404 à la place et ton compteur sera incrémenté de façon correcte.
Publié : 15 avr. 2005, 15:14
par Benoit
Anonymous a écrit :...j'ai vu que avec FF et mozilla sur des pages PHP avec apache il apelle plusieur fois la page php, donc ton code s'execute plusieurs fois... C'est une histoire de page cachable ou non dans mozilla/firefox compare a IE. C'est aussi une histoire de chargement des css, images et autres qui necessite des requetes supplementaire de la page php sur le serveur apache. J'ai pas tout suivi mais je resume en gros:)
Me parait très douteux comme explication, j'utilise PHP depuis plusieurs années avec Apache 1 et 2, tournant tant sur des machines Windows que Linux, et je n'ai jamais eu ce genre de problème.
Je pense que l'explication de PsyDk est la bonne.
Publié : 15 avr. 2005, 22:41
par utilisateur ff gcyrillus
En effet, la balise image retirée ou bien renseigner mon compteur me donnait 14 ! puis j'ai vidé le cache et mis le cache a 0 et la ça marche parfaitement.
retour a la normale ça marche toujours bien.
L'explication ne me parait pas douteuse mais plutot un gros raccourci d' autres sujets de forums lus en diagonale

aprés avoir lu ce sujet comment le résumé rapidos en 4 ligne grosso modo ?.
La leçon que j'en retire, bien finir les choses avant de passer a la suivante
et puis , firefox/mozilla s'y reprennent s'il trouve une erreur avant de laisser passer(IE s'en fout a priori ?).

Encore merci a tous

[REGLE]php et html =bizarre mais php seul = okay !
Publié : 15 avr. 2005, 22:47
par utilisateur ff gcyrillus
Merci, pour moi ce probleme est réglé !
a bientot
Publié : 15 avr. 2005, 22:57
par calimo
Effectivement, on se demande toujours pourquoi IE n'applique pas le src (même s'il était a priori vide, quand-même...)