Bonjour
[quote="Eveo"
Voila voila, je me demandais donc juste quel était le rôle de ce premier petit <br>
[/quote]
À mon sens, il n'a strictement aucun rôle.
Reprenons les choses dans l'ordre.
Soit une page web qui doit contenir un fragment qui sera répété dans plusieurs autres pages.
L'inclusion de ce fragment ne peut se faire en HTML simple car elle doit être opérée au niveau du serveur: c'est lui qui mixe le tout et envoie le résultat final à l'utilisateur.
Pour que cela se fasse, il faut que le serveur web ait la capacité de réaliser cette petite cuisine. Un serveur web muni de connaissances de PHP (ou d'un autre langage côté serveur) peut le faire.
L'instruction "include" de PHP permet donc à la magie d'opérer. Il suffit d'ajouter, en paramètre, le nom du fichier qui doit être "inclus". Mais, cette instruction ne peut être donnée que si l'on prévient le serveur qu'il doit utiliser ses compétences PHP. Pour cela,
le fichier contenant la page web principale doit être déclarée ".php".
Quant au paramètre de la fonction "include" (le nom du fichier à inclure), il peut être du PHP, du HTML ou même d'autres choses éventuellement. Mais, si l'on annonce que ce fichier inclus est en PHP (Ex: hautdepage.inc.php), le serveur, avant de renvoyer quoi que ce soit, évalue le contenu dudit fichier en pensant que c'est du PHP.
Mais, clairement, le fichier hautdepage.inc.php est du simple HTML (qu'il ne faut, d'ailleurs, à aucun prix, éditer dans KompoZer: il va y mettre le brin). Il ne contient aucune instruction en PHP. Donc, ça ne peut pas fonctionner. Et je m'étonne même que tout cela donne le moindre résultat.
Pour clarifier, je propose une petite leçon. Attention, ne rien tenter avec KompoZer ici.
Voici le texte d'un fichier en PHP. Je l'ai baptisé test.php (le nom est important)
Code : Tout sélectionner
<!DOCTYPE html>
<html>
<head>
<title>test1</title>
</head>
<body>
<?php
include('test.inc.html');
?>
</body>
</html>
Voici le code HTML du fichier "test.inc.html" (juste 4 mots, rien d'autre)
Enregistrer les deux fichiers et tester la visualisation de test.php dans le navigateur. Nous voyons apparaître la phrase "Voici un sous-texte".
Deuxième partie de la leçon:
On modifie le fichier test.php
Code : Tout sélectionner
<!DOCTYPE html>
<html>
<head>
<title>test2</title>
</head>
<body>
<?php
include('test.inc.php');
?>
</body>
</html>
et on crée un autre fichier nommé "test.inc.php"
ATTENTION, ce fichier est incorrect. On annonce qu'il contient du PHP (...inc.php) et il n'en contient pas.
Puis, on demande l'affichage de la nouvelle version de test.php dans le navigateur qui nous gratifie d'un désagréable
Code : Tout sélectionner
Parse error: syntax error, unexpected 'un' (T_STRING) in ........../test.inc.php on line 2
À remarquer: le premier mot ("Voici") a été accepté; j'ignore pourquoi l'erreur ne survient que sur le mot "un". Pas grave.
Dernière expérience: on modifie le fichier "test.inc.php" qui devient:
puis on relance test.php. YESSSS....
Conclusions:
- le fichier qui contient la directive "include" doit bien porter l'extension .php
- le fichier inclus
peut contenir du PHP, mais alors il ne peut contenir que des instructions PHP
- le fichier inclus
peut être écrit en HTML, mais alors il ne peut porter l'extension .php
@atheo Les signes %20 représentent des espaces dans les noms de fichiers. Et, effectivement, ce n'est pas une pratique conseillée que d'y laisser des caractères "espace". Leur traitement est un peu particulier et des problèmes peuvent survenir s'ils ne sont pas traités avec les égards qu'ils exigent. En première approximation, je les éviterais, si possible.
Votre Navigateur : Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0