Apres avoir installé wamp5 et le cms SPIP-Agora, les premieres pages php sont interprétés correctement jusqu'à une page affichant le code source php dans le navigateur. En fait, le signe > semble poser problème et renvoyer à l'écran tout le texte qui lui succède. On a:
Dans le programme: $texte .= "?".">\n"; if ($f = fopen($fichier_auth, "wb") {corr...
A l'écran: \n"; if ($f = fopen($fichier_auth, "wb") {corr...
Apres vérification il n'y a pas d'oubli de guillemets dans le code. On dirait qu'il y a une "redirection" du code à l'écran. Comment cela se peut il ? Pourrait il venir de la configuration ou version de PHP installée ? merci
En fait ce code vient de Spip Agora, un fork de SPIP, et je ne suis pas le premier à l'utiliser, c'est pourquoi ce bug m'étonne. J'ai tenté en remplaçant par votre suggestion, mais meme pb, on dirait que l'interpreteur "voit" une fin de balise malgré les guillemets.
Assez étonnant: j'ai mis la ligne en commentaire par le double slash //, mais l'interpreteur continue à "voir" la fin de balise !!
Mais le problème s'est déplacé sur une autre ligne de code plus bas où le > produit le meme effet: $ResultAction=$action->getActionForProfilisTrue($idPoids); ...
J'obtiens à l'écran: getActionForProfilisTrue($idPoids); ...
Je crois que le problème parait plus globale qu'un pb de syntaxe du source code. Un problème de config de l'interpreteur ? j'avoue que j'en reste pantois! Je ne connais pas le langage PHP, mais l'usage de -> est autorisé ?
J'ai remédié au problème, qui était bien lié à la config de l'interpreteur: Apres installation du package WAMP5 1.6.1, par défaut dans php.ini la variable short_open_tag = Off
La variable short_open_tag définit si le parseur doit reconnaître les balises raccourcies <?...?>, ainsi que les balises standard <?php...?>. Désactivez-la si vous prévoyez des conflits avec d'autres langages ou si vous voulez appliquer des règles syntaxiques strictes à votre code PHP.
En la mettant à On les > ne posent plus de problème. En tout cas merci de votre aide
> php.ini la variable short_open_tag = Off > En la mettant à On les > ne posent plus de problème.
À mon humble avis, c'est LA mauvaise solution et pour plusieurs raisons.
- Chez la plupart des hébergeurs, short_open_tag est mis à Off et ne peut pas être changé. - Conflit de balise avec xhtml si on utilise la balise d'ouverture courte <?
La BONNE solution, c'est de remplacer, dans tous les fichiers, les balises <? par <?php
je prends note de votre remarque, mais n'étant pas l'auteur du code et tant que cela fonctionne je n'envisage pas (pour l'instant) de faire un "find & replace" global. (je réalise une maquette intranet pour société)
> je prends note de votre remarque, mais n'étant pas l'auteur du > code et tant que cela fonctionne je n'envisage pas (pour > l'instant) de faire un "find & replace" global. (je réalise une > maquette intranet pour société)
Moi aussi j'ai eu la même blague que toi. Même en metant "short_open_tag" à On, j'avais toujours l'affichage de mon code source sur le browser. Alors que sous EasyPhp(avec PhP 5.1.2 configuré manuellement :-) par moi-même ) le même code est interprété correctement.. D'après ce que j'ai compris, WAMP ne reconnaît pas les balises <? ... ?>. Pour que ça marche, il faut utiliser <?php ... ?> comme Otomatic l'a indiqué. Je trouve ça un peu chiant d'utiliser à chaque fois <?php au lieu de <?. Mais bon, chaque environnement à ses exigeances.