Mise à jours "automatique" des pages d'un site via un modèle

Le premier forum francophone sur l'éditeur de pages Web multiplateforme (Linux, Mac OS X, Windows) qui monte… KompoZer, héritier de Nvu, permet de créer vos pages Web graphiquement (wysiwyg) sans aucune connaissance du langage HTML.

Modérateur : chinon37

Eveo
Arias
Messages : 9
Inscription : 29 mars 2015, 21:57

Re: Mise à jours "automatique" des pages d'un site via un mo

Message par Eveo »

Oui, ce n'est effectivement peut être pas très clair :mrgreen:

Alors voici plus exactement :

Toutes les pages du site sont en .php.
L'include a été créé avec NP++ à partir du code que j'ai récupéré sur Kompozer (ce code étant celui de mon message précédent). Avec NP++ j'ai enregistré le fichier en .php (il se nomme plus exactement ----hautdepage.inc.php . Les ---- me permettent juste de localiser plus vite le fichier parmi les autres).

Ceci fait, j'ai donc placé ce fichier .inc.php parmis mes autres pages en php, puis ai lié .inc.php à mes pages grâce à la fonction <?php include("----hautdepage.inc.php"); ?> .

Lorsque je me rend sur ma page .inc.php sous Kompozer, je vois ceci :

http://a54.idata.over-blog.com/4/01/00/ ... pture1.JPG (partie "Conception : c'est là que je modifie mon code, modifications qui se répercutent ensuite sur toutes les pages du site contenant <?php include("----hautdepage.inc.php"); ?> )
http://a407.idata.over-blog.com/4/01/00 ... pture2.JPG (partie "Source : Là je ne sais pas à quoi ça sert)


MAIS, si par malheur je supprime le premier <br> de mon code quand je suis en mode "Conception" et que j'enregistre et quitte la page. Et bien à l'ouverture suivante je me retrouve avec ça :
http://a405.idata.over-blog.com/4/01/00 ... pture3.JPG (partie "Conception" : Là du coup je n'ai plus de code, je ne peux plus rien modifier ! En plus c'est moche)
http://a404.idata.over-blog.com/4/01/00 ... pture4.JPG (Partie "Source" : Encore plus moche)

Voila voila, je me demandais donc juste quel était le rôle de ce premier petit <br> :)

Merci !
Votre Navigateur : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
atheo
Lézard vert
Messages : 181
Inscription : 03 févr. 2010, 15:45

Re: Mise à jours "automatique" des pages d'un site via un mo

Message par atheo »

bonjour

je n'ai pas de réponse... hélas.

Mais je regardais dans ton code tu as de %20 dans tes noms de fichiers.

pour avoir déjà eu des problèmes avec ces %20 alias " " je voulais juste te le signaler.
Votre Navigateur : Mozilla/5.0 (Windows NT 5.1; rv:37.0) Gecko/20100101 Firefox/37.0
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Re: Mise à jours "automatique" des pages d'un site via un mo

Message par Ymai »

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)

Code : Tout sélectionner

Voici un sous-texte
Enregistrer les deux fichiers et tester la visualisation de test.php dans le navigateur. Nous voyons apparaître la phrase "Voici un sous-texte". 8-)

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"

Code : Tout sélectionner

<?php
Voici un sous-texte
?>
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:

Code : Tout sélectionner

<?php
echo "Voici un sous-texte";
?>
puis on relance test.php. YESSSS.... :P

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
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Eveo
Arias
Messages : 9
Inscription : 29 mars 2015, 21:57

Re: Mise à jours "automatique" des pages d'un site via un mo

Message par Eveo »

Ymai a écrit : 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.
Donc il semble préférable d'enregistrer le fichier include en "hautdepage.inc.htlm" : cela évitera au serveur d'évaluer le contenu et ainsi de gagner en rapidité ?

Ymai a écrit :Conclusions:
- le fichier inclus peut être écrit en HTML, mais alors il ne peut porter l'extension .php
Heu ? Ben le souci c'est qu'à priori, mes pages sont toutes en html, mais enregistrées sous .php . Et tout à fait accessoirement, mon "hautdepage.inc.php" contient un langage qui me semble tout à fait html et parfaitement éditable dans Kompozer :mrgreen: (enfin, au premier <br> près qui met le <brin> justement).

Ymai et Atheo a écrit :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.
Je vais essayer de les faire disparaitre.

Ymai a écrit :À mon sens, il n'a strictement aucun rôle. :-?
Que neni ! Au vu des faits ci-dessus constatés, nous pouvons en déduire que nous avons enfin découvert ... le <br> magique :mrgreen:

Ymai a écrit : 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.
Ben le problème c'est qu'à priori cela semble fonctionner plutôt pas trop mal :mrgreen:

"Il ne savait pas que c'était impossible. Il l'a donc fait."

"La théorie, c'est quand ce qui doit fonctionner ne fonctionne pas.
La pratique, c'est quand ce qui fonctionne ne devrait pas fonctionner."
Votre Navigateur : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 13 invités