Question

Je suis tombé sur la particularité suivante:

$ handle = fopen (realpath (" ../ folder / files.php ")), " r ");

ne peut pas lire un fichier, mais dès que je supprime les balises php du fichier, il devient lisible et mes scripts impriment un contenu de fichier non vide sur la page. De plus, file.php n’est jamais exécuté, alors je me demande pourquoi c’est le problème.

J'imagine qu'Apache ou PHP ne permettent pas de lire les fichiers contenant des balises php en tant que texte.

Comment puis-je l'activer pour mon fichier particulier (bien sûr, le faire globalement serait non sécurisé)?

Utilisation de PHP 5.2.x et Apache 2.0

Était-ce utile?

La solution

Je l'ai eu. J'utilisais Google Chrome pour déboguer la page et je me suis rendu compte que, lors de l'affichage du code source, Chrome masquait les balises PHP pour une raison quelconque. J'ai fait le même test sur Firefox et voir la source prouvait que tout allait bien.

Voici les détails du test:

Code:

$fh = fopen("test.php","r");
while ($line = fgets($fh)){
echo $line;
}

Fichier à lire (test.php):

testing <?php testing2 ?> testing3

Rendu (sur Chrome et Firefox):

testing  testing3

Voir le source (avec Firefox):

<*>

Voir le source (avec Chrome - source de mon erreur):

<*>

Autres conseils

Êtes-vous sûr d’interpréter correctement la sortie? Si vous imprimez le contenu du fichier directement sur la sortie de votre page, un navigateur n’affiche pas le texte entre crochets, car il pense que c’est une balise. Diffusez votre contenu comme text/plain ou utilisez la & Quot; voir la source & Quot; de votre navigateur commande pour vous assurer que vous regardez ce qui est vraiment là et pas seulement ce que le navigateur a choisi d’afficher.

Hmm file_get_contents () travaille pour moi. Est-ce seulement un problème pour le fopen?

Edit: quelle erreur obtenez-vous exactement?

Wadih M. a résolu le problème. Les balises PHP masquent la sortie complète de la source php contenant les balises dans le navigateur, mais View Source les montre. Merci!

J'utilise htmlspecialchars($line);

Cela a résolu le problème.

renommer le fichier lis le obtenir vos données change les renommez votre fichier:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top