WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
code PHP renvoyé à l'écran apres le signe >
Envoyé par: tfab (---.gerflor.com)
Date: 29 March 2006 à 14:48

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"winking smiley) {corr...

A l'écran:
\n";
if ($f = fopen($fichier_auth, "wb"winking smiley) {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

Options: Répondre•Citer ce Message
Re: code PHP renvoyé à l'écran apres le signe >
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 29 March 2006 à 15:03

tfab a écrit:

> Dans le programme:
> $texte .= "?".">\n";

Le problème vient du code lui-même.
En effet, "?".">"\n; est équivalent à ?>\n; soit à une balise de fin de code php.

Donc, code mal écrit.

Si on veut que "?>\n" soit ajouté au contenu de la variable $texte, il faut écrire :
$texte.="?>\\n";

Options: Répondre•Citer ce Message
Re: code PHP renvoyé à l'écran apres le signe >
Envoyé par: tfab (---.gerflor.com)
Date: 29 March 2006 à 15:21

merci pour cette réponse rapide.

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 !!

Options: Répondre•Citer ce Message
Re: code PHP renvoyé à l'écran apres le signe >
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 29 March 2006 à 15:51

Le problème est que ce que j'ai écrit est « interprété » par le navigateur.

J'ai écrit : $texte.="?'ampersand'gt; \\n";

ampersand étant le symbole "et commercial" (&winking smiley

Le navigateur remplace 'ampersand'gt; par le signe plus grand que.

Il faut donc écrire : $texte.="?>\\n";



Message édité (29-03-2006 16:01)

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: code PHP renvoyé à l'écran apres le signe >
Envoyé par: tfab (---.gerflor.com)
Date: 29 March 2006 à 16:11

effectivement, maintenant ça passe, bien joué.

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é ?

merci de votre aide

Options: Répondre•Citer ce Message
Re: code PHP renvoyé à l'écran apres le signe >
Envoyé par: tfab (---.gerflor.com)
Date: 29 March 2006 à 16:28

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

TFab'

Options: Répondre•Citer ce Message
Re: code PHP renvoyé à l'écran apres le signe >
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 29 March 2006 à 17:11

tfab a écrit:

> 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

C'est mon avis et je le partage.

Options: Répondre•Citer ce Message
Re: code PHP renvoyé à l'écran apres le signe >
Envoyé par: tfab (---.gerflor.com)
Date: 29 March 2006 à 17:21

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é)

Options: Répondre•Citer ce Message
Re: code PHP renvoyé à l'écran apres le signe >
Envoyé par: Cobetox (---.214.36.118.coditel.net)
Date: 31 March 2006 à 23:00

tfab a écrit:

> 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.


Options: Répondre•Citer ce Message
Re: code PHP renvoyé à l'écran apres le signe >
Envoyé par: Ner0lph (84.7.149.---)
Date: 03 April 2006 à 17:56

C'est pas WAMP qui ne reconnaît pas les balises ... mais PHP et Apache éventuellement.

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP