Insérer un header et footer sur des pages html

rodolp13 Messages postés 2 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 4 janvier 2005 - 4 janv. 2005 à 01:12
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 4 janv. 2005 à 19:53
Bonjour,

Je suis nouveau sur le site et je développe mon tout premier site. J'ai commencé à m'intéresser à la programmation il y a 1 mois et je créé un site pour m'amuser. Mes notions en web design sont très très limitées. Je suis sur qu'on a déjà du vous poser la question mais j'aimerais savoir comment je peux insérer un header et un footer sur toutes les pages de mon site web. Je voudrais que le header et footer se répète et dans le cas ou j'aurais besoin de les modifier ils soient mis à jour sur l'ensemble du site. J'ai lu qu'on pouvait le faire en utilisant SSI. J'ai essayé mais je n'y suis pas arrive. Est-ce que quelqu'un pourrait m'expliquer point par point comment faire soit en utilisant asp ou ssi?

Je ne crois pas que mon web hosting supporte shtml. Apres avoir uploade les fichiers index1.shtml et footer1.html la page index1.html ne s'affiche pas.

Merci d'avance pour votre aide

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
4 janv. 2005 à 14:41
Non, la question n'est pas étrangement pas tant posé que ca !
Déjà il nous faudrais préciser la technologie que tu utilises asp ou asp.net en asp la seule solution que je connaisse c'est de faire un include, mais puisque tu débutes part directement d'asp.net, il y a des tres jolies tutos sur asp-php.net
Pour asp.net c'est pas tres compliqué, tu as une solution normal, et une autre de faineant :D d'abord la solution normal.



<LI dir=ltr style="MARGIN-RIGHT: 0px">Solution normal
On va se servir d'un controle utilisateur, je vais pas t'expliquer, ce que c'est, je l'ai expliqué moulte de fois sur le forum, une petite recherche et c'est ok En gros c'est comme une page ca a l'extension ascx plutot qu'aspx et il ne derive pas de page mais d'user control, et le comportement est le meme, on peut mettre des boutons et gerer le click en code-behind etc...
Quand tu as fait des deux UserControl tu n'as plus qu'a les inserer à l'endroit voulu sur toutes tes pages, tu peux avoir dedans des accés à une base de données etc... tout sera pris en compte comme une page classique, regarde sur le forum, pour pouvoir déjà comprendre comment ca fonctionne, puis ensuite reviens ici pour tes questions plus techniques </LI>
<LI style="MARGIN-RIGHT: 0px">Solution de faineant
La solution du dessus est pénible, elle nécessite d'ajouter les balises correspondantes dans chaque page, soit 2 par controles, comme t'as deux controles il y a 4 lignes à rajouter par page, si t'as une dizaine de page, ca nous fait quarante ligne identique !!! et 40 lignes c'est enorme pour un faineant
Je sais pas si tu vas tout de suite comprendre la technique que je te dis, mais elle peut servir à d'autres. L'idée est de dérivé l'objet page, duquel hérite toutes tes autres pages.
Ce qu'il faut savoir c'est que tous le code de tes pages aspx hérite de System.Web.UI.Page, ce que nous allons faire, nous allons créer une nouvelle classe MyPage héritant se UI.Page, et changer la dérivation par défaut de toutes les pages aspx (suis je clair )
J'ai malheureusement pas d'IDE sous la main, donc tout ce qui suit n'est pas vérifié, ca vient juste de ma mémoire, il peut y avoir des erreurs, l'important c'est le principe.
Voici a peu pres le code que tu auras pour myPage
</LI>
<OL>
<LI style="MARGIN-RIGHT: 0px">Public Class MyPage</LI>
<LI style="MARGIN-RIGHT: 0px">Inherits System.Web.UI.Page</LI>
<LI style="MARGIN-RIGHT: 0px">Public overrides sub Load(s as object, e as eventargs)</LI>
<LI style="MARGIN-RIGHT: 0px">Dim myHeader as new Header</LI>
<LI style="MARGIN-RIGHT: 0px">myHeader = Controle.LoadControl("header.ascx")</LI>
<LI style="MARGIN-RIGHT: 0px">me.Controls.Add(myHeader)</LI>
<LI style="MARGIN-RIGHT: 0px">'Idem pour footer </LI>
<LI style="MARGIN-RIGHT: 0px">mybase.Load(s,e)</LI>
<LI style="MARGIN-RIGHT: 0px">end sub</LI>
<LI style="MARGIN-RIGHT: 0px">end class</LI></OL>


J'ai mis en orange les lignes ou je ne suis pas sur de moi. Le code comme ca, ne sert pas à grand chose, il faut le comprendre, apres tu peux rajouter des propriètès pour afficher tel control ou pas, etc... mais je ne pense pas que tu en sois arrivé jusqu'ici



<LI>

Solution d'extreme faineantise
La dernière solution, la mieux la plus simple, c'est d'attendre asp.net 2 avec les templates qui vont nous simplifier la vie mais pour ca il faut attendre la fin de l'année ..
</LI>
J'espere que ma réponse te conviendra sinon n'hésites pas à revenir


<HR style="WIDTH: 100%; HEIGHT: 2px">
Cyril
0
rodolp13 Messages postés 2 Date d'inscription mardi 4 janvier 2005 Statut Membre Dernière intervention 4 janvier 2005
4 janv. 2005 à 19:39
Merci pour ton aide. Je vais étudier ca et essayer de le mettre en oeuvre. Pour l'instant je n'ai utilisé que du HTML sur mon site mais je pense que j'utiliserai asp.net. Mais avant ca je dois trouver des tutoriels pour débutants afin d'apprendre à utiliser asp. Je te tiendrai informé. Ca risque de prendre un peu de temps

Rodolphe
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
4 janv. 2005 à 19:53
des tutos pour asp.net : www.asp-php.net


<hr style="width: 100%; height: 2px;">Cyril
0
Rejoignez-nous