Discussion:
inclusion d'un menu
(trop ancien pour répondre)
docanski
2021-03-10 16:01:53 UTC
Permalink
Bonjour la foule ! (mouais, bon, je rigole)

J'ai du mal à comprendre ce qui ne va pas dans mes tentatives
d'inclusion d'un menu dans une série de pages html.
Dans l'ordre :
- j'ai créé et placé à la racine du site un .htaccess dont le code est :
AddType application/x-httpd-php .html afin de ne pas être obligé de
renommer toutes mes pages.
- j'ai créé un fichier menu.php où sont écrits les différents éléments
de celui-ci avec sa mise en page faisant appel à un fichier css
- j'ai écrit le code suivant dans une page d'essai comportant différents
éléments régis par ces css et le code suivant : <?php include
"menu.php" ; ?>
Cette page d'essai avec l'extension .html n'affiche pas le menu.
Une page identique avec l'extension .php me renvoie un code d'erreur du
serveur.
Je précise que ce serveur est free et qu'il interprète pourtant bien les
pages en php.
Si quelqu'un pouvait m'aider à corriger l'erreur ... merci d'avance !

Cordialement,
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Didier
2021-03-10 22:02:10 UTC
Permalink
Post by docanski
Bonjour la foule ! (mouais, bon, je rigole)
J'ai du mal à comprendre ce qui ne va pas dans mes tentatives
d'inclusion d'un menu dans une série de pages html.
AddType application/x-httpd-php .html afin de ne pas être obligé de
renommer toutes mes pages.
- j'ai créé un fichier menu.php où sont écrits les différents éléments
de celui-ci avec sa mise en page faisant appel à un fichier css
- j'ai écrit le code suivant dans une page d'essai comportant différents
éléments régis par ces css et le code suivant : <?php   include
"menu.php" ; ?>
Cette page d'essai avec l'extension .html n'affiche pas le menu.
Une page identique avec l'extension .php me renvoie un code d'erreur du
serveur.
Je précise que ce serveur est free et qu'il interprète pourtant bien les
pages en php.
Si quelqu'un pouvait m'aider à corriger l'erreur ... merci d'avance !
Cordialement,
Bsr,
Moi je mets include("menu.php"); avec les parenthèses pour la fonction
include.
Ce serait peut-être intéressant de connaître l'erreur renvoyée dans le
cas du .php ?
Didier.
docanski
2021-03-11 08:18:15 UTC
Permalink
Post by Didier
Bsr,
Moi je mets include("menu.php"); avec les parenthèses pour la fonction
include.
Ce serait peut-être intéressant de connaître l'erreur renvoyée dans le
cas du .php ?
Didier.
J'ai essayé avec l'extension .php mais le résultat est le même
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Didier
2021-03-11 08:48:07 UTC
Permalink
Post by docanski
Post by Didier
Bsr,
Moi je mets include("menu.php"); avec les parenthèses pour la fonction
include.
Ce serait peut-être intéressant de connaître l'erreur renvoyée dans le
cas du .php ?
Didier.
J'ai essayé avec l'extension .php mais le résultat est le même
Tu as essayé en mettant les parenthèses ? include("menu.php") à la place
de include "menu.php"
Didier.
Otomatic
2021-03-11 09:25:23 UTC
Permalink
Post by Didier
Tu as essayé en mettant les parenthèses ? include("menu.php") à la place
de include "menu.php"
Toujours lire la documentation :
https://www.php.net/manual/fr/function.include.php
« Comme include est une structure de langage particulière, les
parenthèses ne sont pas nécessaires autour de l'argument. »

- Quelle est le texte exact et complet de l'erreur ?

- Est-ce que le fichier menu.php comporte les balises <?php au tout
début et ?> à la fin ?
« ll est important de noter que lorsqu'un fichier est include ou
require, les erreurs d'analyse apparaîtront en HTML tout au début du
fichier, et l'analyse du fichier parent ne sera pas interrompue. Pour
cette raison, le code qui est dans le fichier doit être placé entre les
balises habituelles de PHP. »
--
Un ordinateur résout des problèmes que nous n'aurions pas sans lui
Technique aéronautique : http://aviatechno.net
docanski
2021-03-11 09:56:40 UTC
Permalink
Post by Otomatic
- Quelle est le texte exact et complet de l'erreur ?
- Est-ce que le fichier menu.php comporte les balises <?php au tout
début et ?> à la fin ?
« ll est important de noter que lorsqu'un fichier est include ou
require, les erreurs d'analyse apparaîtront en HTML tout au début du
fichier, et l'analyse du fichier parent ne sera pas interrompue. Pour
cette raison, le code qui est dans le fichier doit être placé entre les
balises habituelles de PHP. »
menu.php avait les balises html, j'y ai ajouté les balises <?php et ?>
Avec le fichier comportant <?php include "menu.php" ; ?> le serveur ne
renvoie pas d'erreur mais la page n'affiche pas ce include.
Avec le fichier en .php, le serveur me renvoie :
Parse error: syntax error, unexpected T_STRING in
/mnt/105/sda/5/9/docanski/jardin-fleuri/page-de-base_Menu.php on line 1

Le fichier censé afficher menu.php comporte le code suivant :

[code]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Jardin fleuri</title>
<link href="fleurs.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="titre">
<h3>Fleurs et arbustes</h3>
</div>
<div id="barre">

<?php
include "menu.php" ;
?>

</div>

<div id="corps">
<h4>Nom de la fleur</h4>
<div id="haut">
<img src="images/fleur1.jpg"
style="float:left"></br></br></br></br></br></br>
<p> texte</p>
</div>
<div id="bas">
<img src="images/fleur2.jpg"
style="float:right"></br></br></br></br></br></br>
<p>texte</p>
</div>
<div id="haut">
<img src="images/fleur3.jpg"
style="float:left"></br></br></br></br></br></br></br>
<p>texte</p>
</div>
<h4><a href="index.html">Retour à la page d'accueil</a></h4>
</div>
</body>
</html>
[/code]
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Olivier Miakinen
2021-03-11 10:05:49 UTC
Permalink
Bonjour,
Post by docanski
Parse error: syntax error, unexpected T_STRING in
/mnt/105/sda/5/9/docanski/jardin-fleuri/page-de-base_Menu.php on line 1
Qu'y a-t-il à la ligne 1 de page-de-base_Menu.php ?

Peut-être un BOM UTF-8 ? Ou alors il manque un point-virgule ?
Olivier Miakinen
2021-03-11 10:10:20 UTC
Permalink
Post by Olivier Miakinen
Post by docanski
Parse error: syntax error, unexpected T_STRING in
/mnt/105/sda/5/9/docanski/jardin-fleuri/page-de-base_Menu.php on line 1
Qu'y a-t-il à la ligne 1 de page-de-base_Menu.php ?
Ah, c'est peut-être ceci :
<?xml version="1.0" encoding="iso-8859-1"?>

Auquel cas ce <? au début pourrait être ce qui pose un problème à PHP.
Essaye de le remplacer par :
<?php echo '<?xml version="1.0" encoding="iso-8859-1"?>' ?>
docanski
2021-03-11 10:29:15 UTC
Permalink
Post by Olivier Miakinen
<?php echo '<?xml version="1.0" encoding="iso-8859-1"?>' ?>
Si j'utilise ce fichier avec l'extension .html, il n'affiche pas le menu
et pas d'erreur.
Si j'utilise ce fichier avec l'extension .php le serveur me renvoie :
Parse error: syntax error, unexpected '<' in
/mnt/105/sda/5/9/docanski/jardin-fleuri/menu.php on line 4
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Olivier Miakinen
2021-03-11 10:33:45 UTC
Permalink
Post by docanski
Post by Olivier Miakinen
<?php echo '<?xml version="1.0" encoding="iso-8859-1"?>' ?>
Si j'utilise ce fichier avec l'extension .html, il n'affiche pas le menu
et pas d'erreur.
Parse error: syntax error, unexpected '<' in
/mnt/105/sda/5/9/docanski/jardin-fleuri/menu.php on line 4
Il n'y a donc plus d'erreur à la ligne 1 de page-de-base_Menu.php mais à
la ligne 4 de menu.php... il y a quoi à la ligne 4 de menu.php ?
docanski
2021-03-11 10:39:22 UTC
Permalink
Post by Olivier Miakinen
Post by docanski
Post by Olivier Miakinen
<?php echo '<?xml version="1.0" encoding="iso-8859-1"?>' ?>
Si j'utilise ce fichier avec l'extension .html, il n'affiche pas le menu
et pas d'erreur.
Parse error: syntax error, unexpected '<' in
/mnt/105/sda/5/9/docanski/jardin-fleuri/menu.php on line 4
Il n'y a donc plus d'erreur à la ligne 1 de page-de-base_Menu.php mais à
la ligne 4 de menu.php... il y a quoi à la ligne 4 de menu.php ?
Voici les balises d'entête de menu.php :

<?php

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Menu persistant</title>
<link href="fleurs.css" rel="stylesheet" type="text/css" />
</head>
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Olivier Miakinen
2021-03-11 10:42:37 UTC
Permalink
Post by docanski
Post by Olivier Miakinen
Il n'y a donc plus d'erreur à la ligne 1 de page-de-base_Menu.php mais à
la ligne 4 de menu.php... il y a quoi à la ligne 4 de menu.php ?
<?php
<?xml version="1.0" encoding="iso-8859-1"?>
Et ça ne t'inspire rien sur la possibilité d'une erreur de syntaxe
concernant un « unexpected '<' » ?!?
docanski
2021-03-11 10:47:19 UTC
Permalink
Post by Olivier Miakinen
Post by docanski
<?xml version="1.0" encoding="iso-8859-1"?>
Et ça ne t'inspire rien sur la possibilité d'une erreur de syntaxe
concernant un « unexpected '<' » ?!?
Non, je ne vois pas. Il est vrai que je ne suis pas vraiment un adepte
de php mais ici, bien d'oblié g'y passer si je veux éviter les dépassés
"iframe"
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
docanski
2021-03-11 10:52:10 UTC
Permalink
Post by docanski
Post by Olivier Miakinen
Post by docanski
<?xml version="1.0" encoding="iso-8859-1"?>
Et ça ne t'inspire rien sur la possibilité d'une erreur de syntaxe
concernant un « unexpected '<' »  ?!?
Non, je ne vois pas. Il est vrai que je ne suis pas vraiment un adepte
de php mais ici, bien d'oblié g'y passer si je veux éviter les dépassés
"iframe"
Il est vrai que selon la doc je pourrais donner l'extension txt à ce
fichier menu et peut-être alors éviter d'écrire la balise <?xml
version="1.0" encoding="iso-8859-1"?> ?
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Olivier Miakinen
2021-03-11 10:55:07 UTC
Permalink
Post by docanski
Post by Olivier Miakinen
Post by docanski
<?xml version="1.0" encoding="iso-8859-1"?>
Et ça ne t'inspire rien sur la possibilité d'une erreur de syntaxe
concernant un « unexpected '<' » ?!?
Non, je ne vois pas.
:-(
Post by docanski
Il est vrai que je ne suis pas vraiment un adepte
de php [...]
Dans ce cas tu ferais mieux d'engager quelqu'un pour écrire ce code PHP.

Bon, je détaille, mais c'est la dernière fois. La ligne 1 de ton fichier
est vide. À la ligne 2 tu as « <?php » qui indique que ce qui suit doit
être du code PHP tant qu'il n'y a pas de balise de fermeture « ?> ». La
ligne 3 est vide. La ligne 4 commence par un caractère '<' qui est
'unexpected' (inattendu) pour commencer une instruction PHP. En effet
le caractère '<' peut exister dans du code PHP, par exemple pour dire
si une valeur est plus petite qu'une autre, mais ce n'est jamais le
début d'une instruction PHP. Le début d'une instruction PHP ça pourrait
être par exemple 'echo' (il y a plein d'autre possibilités mais pas
'<').

Cordialement,
--
Olivier Miakinen
docanski
2021-03-11 11:21:16 UTC
Permalink
Post by Olivier Miakinen
Dans ce cas tu ferais mieux d'engager quelqu'un pour écrire ce code PHP.
Pour une seule page ...
Post by Olivier Miakinen
Bon, je détaille, mais c'est la dernière fois.
:-(
Post by Olivier Miakinen
La ligne 1 de ton fichier
est vide. À la ligne 2 tu as « <?php » qui indique que ce qui suit doit
être du code PHP tant qu'il n'y a pas de balise de fermeture « ?> ». La
ligne 3 est vide. La ligne 4 commence par un caractère '<' qui est
'unexpected' (inattendu) pour commencer une instruction PHP. En effet
le caractère '<' peut exister dans du code PHP, par exemple pour dire
si une valeur est plus petite qu'une autre, mais ce n'est jamais le
début d'une instruction PHP. Le début d'une instruction PHP ça pourrait
être par exemple 'echo' (il y a plein d'autre possibilités mais pas
'<').
Cordialement,
La doc que j'ai consultée ne précise pas que je doive réécrire
complètement le fichier menu.php pour pouvoir l'inclure dans une autre
page. Et s'il en est ainsi, vu que cette page est écrite en html, je
devrais en éliminer TOUTES les balises propres à ce langage ?
Quid dès lors de la mise en page et des CSS ? Comme tu as pu le
constater, les balises <ul> et <li> y sont en nombre et je ne vois
vraiment pas comment les "encapsuler" pour respecter la mise en page.

Cordialement,
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
docanski
2021-03-11 11:31:39 UTC
Permalink
docanski a écrit le 11/03/21 à 12:21 :

Et cela devient plus brumeux quand je consulte le code source du message
d'erreur renvoyé pour menu.php :

[code]
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Jardin fleuri</title>
<link href="fleurs.css" rel="stylesheet" type="text/css" />

</head>
<body>
<div id="titre">
<h3>Fleurs et arbustes</h3>
</div>
<div id="barre">

<br />
<b>Parse error</b>: syntax error, unexpected '<' in
<b>/mnt/105/sda/5/9/docanski/jardin-fleuri/menu.php</b> on line
<b>4</b><br />
[/code]

où la ligne incriminée (la 4) serait alors le <head> ...
Post by docanski
Cordialement,
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Olivier Miakinen
2021-03-11 11:33:16 UTC
Permalink
Post by docanski
Post by Olivier Miakinen
Dans ce cas tu ferais mieux d'engager quelqu'un pour écrire ce code PHP.
Pour une seule page ...
Ah, ok.
Post by docanski
Post by Olivier Miakinen
Bon, je détaille, mais c'est la dernière fois.
:-(
Bon, aller, un dernier coup de pouce.
Post by docanski
Post by Olivier Miakinen
La ligne 1 de ton fichier
est vide. À la ligne 2 tu as « <?php » qui indique que ce qui suit doit
être du code PHP tant qu'il n'y a pas de balise de fermeture « ?> ». La
ligne 3 est vide. La ligne 4 commence par un caractère '<' qui est
'unexpected' (inattendu) pour commencer une instruction PHP. En effet
le caractère '<' peut exister dans du code PHP, par exemple pour dire
si une valeur est plus petite qu'une autre, mais ce n'est jamais le
début d'une instruction PHP. Le début d'une instruction PHP ça pourrait
être par exemple 'echo' (il y a plein d'autre possibilités mais pas
'<').
Cordialement,
La doc que j'ai consultée ne précise pas que je doive réécrire
complètement le fichier menu.php pour pouvoir l'inclure dans une autre
page.
Non, mais je suppose qu'elle ne dit pas non plus que du code HTML
ou XML doive devenir du code PHP (balise d'ouverture <?php mise
devant du code HTML/XML)



Voici donc ce que je te suggère :
1) efface la ligne 2 de ton menu.php, celle qui contient « <?php »,
et probablement aussi la dernière ligne où tu as dû sans doute
écrire « ?> »
2) si ça ne marche pas, avec l'erreur unexpected T_STRING comme dans
page-de-base_Menu.php, fais la même chose que ce que je t'avais
conseillé pour page-de-base_Menu.php, à savoir remplacer la ligne 4
par : <?php echo '<?xml version="1.0" encoding="iso-8859-1"?>' ?>
2bis) plus simple, tu peux probablement virer toutes ces lignes
<?xml ... > (sauf si tu as une bonne raison de les laisser)
docanski
2021-03-11 11:44:48 UTC
Permalink
Post by Olivier Miakinen
Bon, aller, un dernier coup de pouce.
Oh nooooon ... :-(
Post by Olivier Miakinen
Non, mais je suppose qu'elle ne dit pas non plus que du code HTML
ou XML doive devenir du code PHP (balise d'ouverture <?php mise
devant du code HTML/XML)
1) efface la ligne 2 de ton menu.php, celle qui contient « <?php »,
et probablement aussi la dernière ligne où tu as dû sans doute
écrire « ?> »
2) si ça ne marche pas, avec l'erreur unexpected T_STRING comme dans
page-de-base_Menu.php, fais la même chose que ce que je t'avais
conseillé pour page-de-base_Menu.php, à savoir remplacer la ligne 4
par : <?php echo '<?xml version="1.0" encoding="iso-8859-1"?>' ?>
2bis) plus simple, tu peux probablement virer toutes ces lignes
<?xml ... > (sauf si tu as une bonne raison de les laisser)
Je vais m'atteler à ça cet après-midi car ma moitié me réclame.
Merci déjà pour ces infos ... en espérant qu'elles suffiront car ton
message plus haut parlant des "<" que php refuserait me laisse perplexe
vu que tout le code html en comporte. ET dans ce cas, je ne vois
vraiment pas comment je pourrais écrire les listes de ce menu (<ul> et
<li>).
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Olivier Miakinen
2021-03-11 12:49:46 UTC
Permalink
[...] ton
message plus haut parlant des "<" que php refuserait me laisse perplexe
vu que tout le code html en comporte.
Ce que je voulais dire, c'est que tous ces "<" font partie de balises
HTML, pas d'instructions PHP. Elles n'ont rien à faire telles quelles
à l'intérieur d'un <?php ... ?>.
docanski
2021-03-11 16:06:07 UTC
Permalink
Post by Olivier Miakinen
[...] ton
message plus haut parlant des "<" que php refuserait me laisse perplexe
vu que tout le code html en comporte.
Ce que je voulais dire, c'est que tous ces "<" font partie de balises
HTML, pas d'instructions PHP. Elles n'ont rien à faire telles quelles
à l'intérieur d'un <?php ... ?>.
Je crois que mon problème est résolu : après avoir éliminé le doctype
des pages et l'avoir remplacé par <?php echo '<?xml version="1.0"
encoding="iso-8859-1"?>' ?>, l'affichage se fait correctement après
avoir donné l'extension .php aux fichiers.
Les balises de début et de fin des fichiers ( <?php et ?> ont évidemment
aussi été éliminées.
Merci pour ton aide !
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
docanski
2021-03-11 10:15:33 UTC
Permalink
Post by docanski
Post by Otomatic
- Quelle est le texte exact et complet de l'erreur ?
- Est-ce que le fichier menu.php comporte les balises <?php au tout
début et ?> à la fin ?
« ll est important de noter que lorsqu'un fichier est include ou
require, les erreurs d'analyse apparaîtront en HTML tout au début du
fichier, et l'analyse du fichier parent ne sera pas interrompue. Pour
cette raison, le code qui est dans le fichier doit être placé entre les
balises habituelles de PHP. »
menu.php avait les balises html, j'y ai ajouté les balises <?php et ?>
Avec le fichier comportant <?php include "menu.php" ; ?> le serveur
ne renvoie pas d'erreur mais la page n'affiche pas ce include.
Post by docanski
Parse error: syntax error, unexpected T_STRING in
/mnt/105/sda/5/9/docanski/jardin-fleuri/page-de-base_Menu.php on line 1

[edit]
Avec le fichier .html censé afficher menu.php et comportant <?php
include "menu.php" ; ?> le serveur ne renvoie pas d'erreur mais la page
n'affiche pas ce include.
Avec le fichier .php, censé afficher menu.php comportant également
l'include le serveur me renvoie : Parse error: syntax error, unexpected
T_STRING in
/mnt/105/sda/5/9/docanski/jardin-fleuri/page-de-base_Menu.php on line 1
[/edit]
--
docanski

Guide des champignons d'Europe : http://mycorance.free.fr/
La vallée de la Rance maritime : http://valderance.free.fr/
Les côtes du nord de la Bretagne : http://docarmor.free.fr/
Forum boursier : http://docanski.free.fr/boursomania/
Continuer la lecture sur narkive:
Loading...