Balise "echo" ne s'arrête pas
Résolu
tipitap
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
tipitap Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
tipitap Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
bonjour,
j'ai rédigé un document gedit en php;
mais lorsque je le visualise sur mon serveur, la dernière ligne de code apparaît:
\n"; ?> $ressource[nom]\n"; } echo ""; ?>
A y regarder de plus près, je m'aperçois que la balise "echo" est fautive: elle ne s'arrête pas et écrit ce qui vient ensuite, malgré une syntaxe qui me semble correcte pourtant...
<?php
echo "<ul>\n";
for ($i=0; $i<sizeof($tableressource); $i=$i+1) {
$ressource = $tableressource [$i];
echo "<li><a href='presentation_contenu.php?id=$i'>$ressource[nom]</a></li>\n";
}
echo "</ul>";
?>
J'ai essayé d'enlever les lignes les unes après les autres, scindé avec plusieurs <?php ?>, modifié, mais rien n'y fait...
Comment puis- je l'arrêter?
D'avance merci,
tipitap
j'ai rédigé un document gedit en php;
mais lorsque je le visualise sur mon serveur, la dernière ligne de code apparaît:
\n"; ?> $ressource[nom]\n"; } echo ""; ?>
A y regarder de plus près, je m'aperçois que la balise "echo" est fautive: elle ne s'arrête pas et écrit ce qui vient ensuite, malgré une syntaxe qui me semble correcte pourtant...
<?php
echo "<ul>\n";
for ($i=0; $i<sizeof($tableressource); $i=$i+1) {
$ressource = $tableressource [$i];
echo "<li><a href='presentation_contenu.php?id=$i'>$ressource[nom]</a></li>\n";
}
echo "</ul>";
?>
J'ai essayé d'enlever les lignes les unes après les autres, scindé avec plusieurs <?php ?>, modifié, mais rien n'y fait...
Comment puis- je l'arrêter?
D'avance merci,
tipitap
A voir également:
- Balise "echo" ne s'arrête pas
- Balise br ✓ - Forum Webmastering
- @Echo off ✓ - Forum Programmation
- Saut de lignes sans <br/> ✓ - Forum Webmastering
- Facebook s'arrête systématiquement ✓ - Forum Téléphones & tablettes Android
- Balise </br> - Forum HTML
15 réponses
bonjour, voici le résultat sans le \n:
Les ressources disponibles sont les suivantes:
"; for ($i=0; $i$ressource[nom]"; } echo ""; ?>
j'oubliais, je suis sur un serveur local, sur mon ordinateur portable, sur Linux. Je viens d'installer Apache, PHP et MySQL. Peut-être est-ce lié...?
Les ressources disponibles sont les suivantes:
"; for ($i=0; $i$ressource[nom]"; } echo ""; ?>
j'oubliais, je suis sur un serveur local, sur mon ordinateur portable, sur Linux. Je viens d'installer Apache, PHP et MySQL. Peut-être est-ce lié...?
Bonjour
->Burkinanonymou
Normalement lorsqu'une chaine de caractères est un indice de tableau (array), il faut l'entourer de simples quotes
En général oui, mais surtout pas dans le cas donné par tipitap, où on est à l'intérieur d'une chaîne entre doubles quotes. Donc sa syntaxe est correcte à ce niveau, et mettre des apostrophes serait une erreur.
->tipitap
Ton programme buggue parce qu'il n'est pas interprété par PHP. Soit ton serveur est mal configuré, soit tu appelles ton fichier en cliquant dessus dans une fenêtre d'explorateur windows, au lieu de l'appeler grâce à une url style http://localhost/ ou http://127.0.0.1/
Essaye un script ultrasimple, genre <?php echo "coucou" ?> pour voir s'il marche
->Burkinanonymou
Normalement lorsqu'une chaine de caractères est un indice de tableau (array), il faut l'entourer de simples quotes
En général oui, mais surtout pas dans le cas donné par tipitap, où on est à l'intérieur d'une chaîne entre doubles quotes. Donc sa syntaxe est correcte à ce niveau, et mettre des apostrophes serait une erreur.
->tipitap
Ton programme buggue parce qu'il n'est pas interprété par PHP. Soit ton serveur est mal configuré, soit tu appelles ton fichier en cliquant dessus dans une fenêtre d'explorateur windows, au lieu de l'appeler grâce à une url style http://localhost/ ou http://127.0.0.1/
Essaye un script ultrasimple, genre <?php echo "coucou" ?> pour voir s'il marche
En effet, le père, ton script me renvoie une page blanche.
Mon serveur est probablement mal configuré...
Mon localhost me renvoie bien un document html, mais pas le php:
Accueil
Contribuer
Rechercher
Nous contacter
Les ressources disponibles sont les suivantes:
\n"; for ($i=0; $i$ressourceNom\n"; } echo ""; ?>
Je ne pense donc pas que le problème vienne de la saisie d''adresse dans la barre URL.
Que faire alors? désinstaller PHP5 et le réinstaller?
c'est une commande rm- quelque chose dans le terminal, je crois, n'est-ce pas?
Merci beaucoup en tout cas!
Mon serveur est probablement mal configuré...
Mon localhost me renvoie bien un document html, mais pas le php:
Accueil
Contribuer
Rechercher
Nous contacter
Les ressources disponibles sont les suivantes:
\n"; for ($i=0; $i$ressourceNom\n"; } echo ""; ?>
Je ne pense donc pas que le problème vienne de la saisie d''adresse dans la barre URL.
Que faire alors? désinstaller PHP5 et le réinstaller?
c'est une commande rm- quelque chose dans le terminal, je crois, n'est-ce pas?
Merci beaucoup en tout cas!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mon localhost me renvoie bien un document html, mais pas le php
Est-tu bien sûr que c'est ton localhost ? Il n'y a pas besoin de serveur pour visualiser le html.
Dans tous les cas, tu n'as pas à désinstaller et réinstaller php, ce n'est pas sa faute s'il n'est pas appelé. C'est dans le httpd.conf qu'il faut mettre "ce qui va bien" pour que Apache appelle PHP quand on lui demande une page php.
Qu'est-ce qui s'affiche exactement dans la barre d'adresse de ton navigateur ?
Est-tu bien sûr que c'est ton localhost ? Il n'y a pas besoin de serveur pour visualiser le html.
Dans tous les cas, tu n'as pas à désinstaller et réinstaller php, ce n'est pas sa faute s'il n'est pas appelé. C'est dans le httpd.conf qu'il faut mettre "ce qui va bien" pour que Apache appelle PHP quand on lui demande une page php.
Qu'est-ce qui s'affiche exactement dans la barre d'adresse de ton navigateur ?
bonsoir le père,
j'ai tapé http://localhost/~tipitap/test.php.
C'est cela qui apparaît dans la barre URL...
j'ai tapé http://localhost/~tipitap/test.php.
C'est cela qui apparaît dans la barre URL...
Alors, c'est un problème de httpd.conf.
Trouves-tu quelque chose qui parle de php dans ce fichier ?
Y a-t-il une erreur reportée dans les logs d'Apache au démarrage ?
Trouves-tu quelque chose qui parle de php dans ce fichier ?
Y a-t-il une erreur reportée dans les logs d'Apache au démarrage ?
Bonjour,
Petite question : si tu fais « afficher la source » dans ton navigateur, est-ce que tu vois tout le code PHP, ou est-ce qu'une partie est bien interprétée ?
Xavier
Petite question : si tu fais « afficher la source » dans ton navigateur, est-ce que tu vois tout le code PHP, ou est-ce qu'une partie est bien interprétée ?
Xavier
@ le père: j'avais regardé précédemment dans le fichier httpd.conf.in; mais la syntaxe me semblait très difficile, et mon prof m'avait dit que modifier directement la destination du fichier ne pouvait pas marcher pour plusieurs raisons...
Mais je suis incapable d'argumenter cela.
@ Xavier: bonjour, effectivement, une partie est interprétée par le serveur.
Voici ce que me renvoie le serveur:
\n"; for ($i=0; $i$ressourceNom\n"; } echo ""; ?>
et en voici le code source (je souligne ce qui est absent à la visualisation sur le serveur):
<?php
echo "<ul>\n";
for ($i=0; $i<sizeof($tableressource); $i=$i+1) {
$ressource = $tableressource [$i];
$ressourceNom = $ressource['nom'];
echo "<li><a href='presentation_contenu.php?id=$i'>$ressourceNom</a></li>\n";
}
echo "</ul>";
?>
C'est ce qui m'a fait croire qu'il s'agissait d'une erreur d'encodage.
un grand merci pour votre aide à tous les deux!!
@ administrateur: y a-t-il moyen de tagger ces messages autrement que par ce qui est proposé? Comment peut-on baliser ce message sur un problème de configuration?
Mais je suis incapable d'argumenter cela.
@ Xavier: bonjour, effectivement, une partie est interprétée par le serveur.
Voici ce que me renvoie le serveur:
\n"; for ($i=0; $i$ressourceNom\n"; } echo ""; ?>
et en voici le code source (je souligne ce qui est absent à la visualisation sur le serveur):
<?php
echo "<ul>\n";
for ($i=0; $i<sizeof($tableressource); $i=$i+1) {
$ressource = $tableressource [$i];
$ressourceNom = $ressource['nom'];
echo "<li><a href='presentation_contenu.php?id=$i'>$ressourceNom</a></li>\n";
}
echo "</ul>";
?>
C'est ce qui m'a fait croire qu'il s'agissait d'une erreur d'encodage.
un grand merci pour votre aide à tous les deux!!
@ administrateur: y a-t-il moyen de tagger ces messages autrement que par ce qui est proposé? Comment peut-on baliser ce message sur un problème de configuration?
Qu'entends-tu par "modifier directement la destination du fichier" ? Je ne pense pas en avoir parlé, et je ne vois pas le rapport avec le fait de vérifier si oui ou non il y a quelque chose qui parle de php dans le fichier httpd.conf (et non pas httpd.conf.in ???).
En ce qui concerne ta réponse à Reivax962, je crains que tu n'aies pas compris sa question. Compte-tenu de ta réponse, j'ai l'impression que tu ne vois pas précisément ce qu'il voulait dire par « afficher le source », opération qui consiste à visualiser le code HTML de la page grâce à une commande du menu de ton navigateur (raccourci sur FF et Chrome : Ctrl U ; Sur IE Menu Affichage - Source)
Tu remarquera que ce qui te manque commence par < et finit par > : C'est que ton html n'est pas interprété du tout, tout est envoyé tel quel à ton navigateur. Et pour ton navigateur, une balise commence par <, finit par > et il n'affiche pas les balises évidemment.
En ce qui concerne ta réponse à Reivax962, je crains que tu n'aies pas compris sa question. Compte-tenu de ta réponse, j'ai l'impression que tu ne vois pas précisément ce qu'il voulait dire par « afficher le source », opération qui consiste à visualiser le code HTML de la page grâce à une commande du menu de ton navigateur (raccourci sur FF et Chrome : Ctrl U ; Sur IE Menu Affichage - Source)
Tu remarquera que ce qui te manque commence par < et finit par > : C'est que ton html n'est pas interprété du tout, tout est envoyé tel quel à ton navigateur. Et pour ton navigateur, une balise commence par <, finit par > et il n'affiche pas les balises évidemment.
bonjour le père,
effectivement, tu n'en as pas parlé, mais je pensais que c'était ce à quoi tu faisais allusion... J'avais vu cette solution sur un fichier d'aide d'Apache, je crois.
Le fichier dont tu me parles, httpd.conf, semble absent de mon ordinateur. J'ai bien "httpd.conf.in", et un "test.httpd.conf". Il est présent dans mes
Téléchargements/ httpd-2.4.6 / docs / conf
Cela étant, aucune trace de "php"dans httpd.conf.in.
Je constate en effet que ce qui manque est encadré par les balises. Ce qui signifie qu'une balise n'a pas été interprétée correctement par mon navigateur...?
Quant au code source, ce qui apparaît en tapant Ctrl U est que les éléments interprétés sont en rouge, et ceux non interprétés apparaissent en noir... Mais le code tapé est respecté par le navigateur: c'est le même que celui que j'ai tapé...
effectivement, tu n'en as pas parlé, mais je pensais que c'était ce à quoi tu faisais allusion... J'avais vu cette solution sur un fichier d'aide d'Apache, je crois.
Le fichier dont tu me parles, httpd.conf, semble absent de mon ordinateur. J'ai bien "httpd.conf.in", et un "test.httpd.conf". Il est présent dans mes
Téléchargements/ httpd-2.4.6 / docs / conf
Cela étant, aucune trace de "php"dans httpd.conf.in.
Je constate en effet que ce qui manque est encadré par les balises. Ce qui signifie qu'une balise n'a pas été interprétée correctement par mon navigateur...?
Quant au code source, ce qui apparaît en tapant Ctrl U est que les éléments interprétés sont en rouge, et ceux non interprétés apparaissent en noir... Mais le code tapé est respecté par le navigateur: c'est le même que celui que j'ai tapé...
Ça ce confirme donc, même si je n'avais guère de doute : PHP n'est pas actif.
Je constate en effet que ce qui manque est encadré par les balises. Ce qui signifie qu'une balise n'a pas été interprétée correctement par mon navigateur
Ton navigateur n'a pas à interpréter une balise <?php , car ce n'est pas une balise html. Conformément aux spécifications HTML, il ignore tout jusqu'à la fin de la balise, qui est le > suivant. Donc le navigateur se comporte tout à fait normalement.
Ce qui n'est pas normal, c'est que cette balise arrive jusqu'au navigateur : elle aurait dû être interceptée et interprétée dans le serveur.
Mais si Apache ne "sait" pas que tu as PHP, il envoie tout sans se poser de questions. Et c'est comme ça que la balise <?php arrive dans le navigateur.
Quand tu as installé PHP, tu l'as installé toi-même "à la main" indépendamment de Apache et MySQL ? Il y avait forcément une explication sur la configuration Apache pour PHP. Personnellement, sous windows, il a fallu que j'ajoute dans httpd.conf deux lignes :
Je constate en effet que ce qui manque est encadré par les balises. Ce qui signifie qu'une balise n'a pas été interprétée correctement par mon navigateur
Ton navigateur n'a pas à interpréter une balise <?php , car ce n'est pas une balise html. Conformément aux spécifications HTML, il ignore tout jusqu'à la fin de la balise, qui est le > suivant. Donc le navigateur se comporte tout à fait normalement.
Ce qui n'est pas normal, c'est que cette balise arrive jusqu'au navigateur : elle aurait dû être interceptée et interprétée dans le serveur.
Mais si Apache ne "sait" pas que tu as PHP, il envoie tout sans se poser de questions. Et c'est comme ça que la balise <?php arrive dans le navigateur.
Quand tu as installé PHP, tu l'as installé toi-même "à la main" indépendamment de Apache et MySQL ? Il y avait forcément une explication sur la configuration Apache pour PHP. Personnellement, sous windows, il a fallu que j'ajoute dans httpd.conf deux lignes :
PHPIniDir "C:\Program Files\PHP\"Ce n'est certainement pas la même chose pour toi sous linux, mais ça doit avoir un air de famille. Regarde bien la doc d'installation de PHP
LoadModule php5_module "C:\Program Files\PHP\php5apache2_2.dll"
Tu as raison, j'ai installé PHP séparément de Apache.
Je vais vérifier cela.
un grand merci, le père!
Je vais vérifier cela.
un grand merci, le père!
bonjour à tous,
J'ai essayé de réinstaller PHP sur Linux; apparemment il n'était pas installé. Mais quelque chose buggait, je n'ai pas réussi à le faire. Je n'ai pas réussi à trouver la documentation qui m'intéressait non plus...
Puisque j'ai également Windows sur ma machine, je me suis rabattu sur Wampserver. Ca a très bien fonctionné pour la visualisation des pages créées avec php; par contre, je n'avais pas les droits d'accès pour créer des bases. Et apparemment, il faut compter au moins deux heures de modifications du logiciel pour espérer pouvoir récupérer les privilèges sur Windows...
J'ai donc essayé EasyPHP, et là, miracle, ça marche...
Quelqu'un y comprend-il quelque chose???
En tout cas merci à tous pour votre aide.
Cordialement
Tipitap
J'ai essayé de réinstaller PHP sur Linux; apparemment il n'était pas installé. Mais quelque chose buggait, je n'ai pas réussi à le faire. Je n'ai pas réussi à trouver la documentation qui m'intéressait non plus...
Puisque j'ai également Windows sur ma machine, je me suis rabattu sur Wampserver. Ca a très bien fonctionné pour la visualisation des pages créées avec php; par contre, je n'avais pas les droits d'accès pour créer des bases. Et apparemment, il faut compter au moins deux heures de modifications du logiciel pour espérer pouvoir récupérer les privilèges sur Windows...
J'ai donc essayé EasyPHP, et là, miracle, ça marche...
Quelqu'un y comprend-il quelque chose???
En tout cas merci à tous pour votre aide.
Cordialement
Tipitap