Pixel a écrit :
Ma foi, désolé d'être un peu confus mais pour une première participation à ce forum, ça refroidit. Je me demande si c'est bien la place ici, pour un débutant confusionné.
Comme je te l'ai dit, je suis désolé d'être décevant sur le travail que tu as déjà fait, mais il te manque beaucoup de notions de base.
Tout ne se mettra pas en place en un message et en une page web, mais tâchons de reprendre tout ça :
Configuration serveur et types de contenus
Le problème lié à la mauvaise configuration du serveur qui héberge ton site devrait être réglé par l"hébergeur.
J'espère qu'il associera les bonnes informations de "type mime", comme on les appelle, aux bonnes extensions de fichiers : lorsquun navigateur Web reçoit une page html, une image, une feuille de style, etc. il traite celle-ci en fonction de son type de contenu (il vaut mieux, par exemple, qu'il n'essaie pas d'afficher le code binaire d'une image comme un fichier texte, n'est-ce pas ?).
En pratique, beaucoup de navigateurs anticipent les erreurs sur le type mime indiqué par les serveurs, qui est souvent erroné. Ils parviennent à deviner le bon type de contenu en se fiant à l'extension du fichier :
.css suggère une feuille de style, même si le fichier a par erreur le type mime
text/plain au lieu de
text.css.
Sauf qu'il est très imprudent de se fier à cette capacité de certains navigateurs à gérer cette erreur:
- tous ne le font pas, et pas de la même manière : Firefox refusera systématiquement d'appliquer la feuille de style (dans une page en mode de rendu strict des standards) si elle n'est pas tamponnée "text/css".
- cela peut être considéré comme un facteur d'insécurité, et donc désactivé par l'utilisateur : avec le même navigateur, ce n'est pas parce que "ça passe" chez X que ça passera chez Y
- c'est une source d'erreurs en chaîne : même si tout va bien aujourd'hui avec mes fichiers actuels, rien ne me dit que ça marchera demain avec un autre type de fichier
- des types de contenus corrects sont indispensables à certaines avancées essentielles des sites web actuels
Donc : exiger de ton hébergeur une bonne gestion des types mimes est indispensable, surtout sur un serveur Microsoft-IIS, connu pour avoir par une configuration par défaut assez médiocre là-dessus. Ce qui donne, pour tout dire, de très mauvaises habitudes aux hébergeurs
Si tu souhaite approfondire, voir
http://www.yoyodesign.org/doc/w3c/chip/index.html.gz#content (mais ce n'est pas l'essentiel à ce stade)
Le problème des langages serveur et client
Tu inclus dans ta page ce que l'on appelle des scripts PHP :
<?php
$nomjour=date("l");
$jour=date("j");
$nommois=date("m");
$annee=date("Y");
$heure=date("H");
$minute=date("i");
switch ($nomjour)
{
case "Monday":
$nomjour="Lundi";
...
?>
Gros problème : ce script n'est pas destiné à être exécuté par le navigateur qui reçoit la page. Le langage PHP permet de faire exécuter des scripts par le
serveur du site,
avant envoi de la page au navigateur. le serveur se sert des instructions PHP pour générer du HTML. Le navigateur, lui, ne doit jamais voir une ligne de PHP dans le code des pages Web : il est incapable d'en exécuter la moindre instruction.
Alors, qu'est-ce que ces scripts PHP font dans la page que ton serveur m'adresse ? Il se passe simplement qu'ils n'ont pas été exécutés par le serveur, qui ne connaît pas le langage PHP, parce que c'est un serveur Microsoft-IIS, qui par défaut ne connaît que le langage serveur ASP ou le langage .Net.
On peut installer PHP sur un serveur IIS, mais c'est assez rare, et je doute que ce soit le cas sur ton hébergement (tu ne peux pas le faire : c'est à l'hébergeur de le faire).
Le fait que ton serveur se trompe sur le type mime à associer aux pages .php est d'ailleurs révélateur : il ne sait pas exécuter du PHP.
Donc : tu ne peux très certainement pas utiliser des scripts PHP. En revanche, dans le cas d'un script simple comme celui-ci, tu pourrais t'initier à l'ASP et réaliser l'équivalent, qui donnerait grosso modo:
<%
dim nomjour
nomjour=WeekdayName(weekday(date))
...
Select Case nomjour
case "Monday":
nomjour="Lundi";
case ...
End Select
...
%>
Ou alors, migrer vers un serveur PHP...
Mais dans tous les cas, il faut bien apprendre à différencier ces scripts
serveurs des scripts
clients en
javascript, que le navigateur peut en revanche exécuter :
<script type="text/javascript">
<!--
function montre(id)
...
</script>
Pour PHP et ASP, laissons de côté : je ne te conseillerais pas d'utiliser ces langages serveurs avant de savoir établir une page HTML CSS "simple". Pour l'instant, mieux vaux s'en tenir aux scripts clients, sur lesquels tu pourais commencer par
http://www.openweb.eu.org/dom/
HTML3.2, HTML4.01, XHTML1.0 : il faut choisir
Dans tous les cas, ton site envoie au navigateur des pages au format HTML. Mais il existe plusieurs versions successives de celui-ci, qui ne permettent pas toutes de faire les mêmes choses.
Les premières lignes de ta page sont justement la
déclaration de type de document qui indique quel format de HTML tu as adopté.
HTML3.2 n'est certainement pas le format approprié pour toi : l'iframe, par exemple, n'y existe pas. Cette version ancienne a des capacités limitées et n'est plus employée aujourd'hui : la dernière version de HTML est HTML4.01.
Mais on te conseillera plutôt d'adopter le format XHTML1.0 (transitionnel), qui est une reformulation du HTML4.01 avec des règles d'écriture plus claires et donc plus aisées à apprendre.
Donc: quelques lectures de base:
-
http://pompage.net/pompe/doctype/ (les formats HTML et XHTML)
-
http://pompage.net/pompe/mieuxvivre/ (pourquoi choisir XHTML1.0)
-
http://www.tuteurs.ens.fr/internet/web/html/ (les bases du code XHTML)
- Un éditeur Wysiwyg léger, produisant du XHTML correct, qui te simplifiera sans doute le démarrage: Nvu,
à télécharger ici, avec
un bon tutoriel ici
Réutiliser des scripts, des tutoriels, des exemples de code
Comme tout débutant, et comme beaucoup de wemestres "amateurs" et même "pro", tu as déjà commencé à composer ton code en y copiant-collant des scripts, des exemples, des fonctions prêtes à l'emploi proposées ici et là sur le Web. Ce n'est pas une mauvaise façon de faire, et c'est généralement ainsi que les gens découvrent ces différents langages et formats.
Mais tu dois veiller :
- à ne pas mêler des choses incompatibles : l'iframe non supporté en HTML3.2, le PHP non supporté par ton serveur...
- à la qualité de la source : il traîne sur le Web une quantité fantastique de scripts écrits avec les deux pieds du temps où on ne se souciait d'aucune des normes indispensables pour la fiabilité globale du truc
- à ne pas céder à la tentation d'aller trop vite : adapter ce menu déroulant n'est pas si évident quand on ne maîtrise déjà pas les bases.
Tu trouveras ici et dans les différents sites qui y sont fréquemment cités :
- des exemples réalisés dans le respect de ces normes : c'est le credo maison
- des gens pour t'aider si tu es prêt à faire de ton côté l'effort de formation nécessaire à l'aide des sources qui te sont indiquées.
Suggestion de lecture :
http://forum.alsacreations.com/faq/
Bien comprendre le problème Internet Explorer
Pour des raisons liées à la concurrence entre ses grands acteurs, le Web s'est d'abord développé en s'asseyant allègrement sur la notion de norme. D'où un certain désordre, et des sites de plus en plus compliqués à développer pour qu'ils soient utilisables par tout le monde, quelque-soit son navigateur, son système d'exploitation, etc.
Cette situation est en train de changer avec le retour progressif à une approche "standard" : c'est pourquoi on te conseille de coder en XHTML1.0, de valider tes CSS, de ne pas utiliser de javascript mal fichu, etc. (Voir
http://www.w3.org/QA/2002/07/WebAgency-Requirements.html.fr . C'est un document destiné aux grands comptes Web, mais qui contient un excellent tableaux des différents standards et de leurs rôles respectifs)
Mais utiliser Internet Explorer comme navigateur de référence pour développer et tester tes pages va te rendre très difficile cette démarche "standard". IE, en effet, est actuellement le navigateur le plus indifférent aux erreurs de codage : il a été conçu pour:
- récupérer au petit bonheur la chance le plus grand nombre possible d'erreurs dans les pages Web
- utiliser un grand nombre de codes "propriétaires", ignorés des autres navigateurs qui se fient aux standards.
Et c'est en outre un navigateur vieilli, aujourd'hui dépassé quant à ce qu'il est capable de comprendre dans une page Web moderne et standard.
Il va donc souvent te donner l'impression que "c'est bon, ça marche", alors qu'en fait, ta page Web ne tient pas debout.
Attention ! je ne suis surtout pas en train de te dire "laisse tomber IE et surfe plutôt avec tel ou tel navigateur" ! Tu peux utiliser le navigateur que tu veux pour surfer, ça ne me regarde pas. En revanche, pour
développer et tester tes pages, il est indispensable d'utiliser un navigateur plus récent et moins erratique.
Donc : il faut en passer par l'installation et l'utilisation en développement, au choix, de :
- Firefox
- ou Opera
- ou Konqueror (linux uniquement)
- ou Safari (Mac uniquement)
Voir
http://www.openweb.eu.org/articles/navigateurs_alternatifs/
Voilà. Comme tu peux le constater, il fallait un peu de temps pour couvrir en gros les différents problèmes que tu rencontres
ça ne fera pas marcher ton menu déroulant dans 5mn, désolé. Mais :
- te donner un code à copier-coller dans ta page n'aurait aucun sens, étant donné qu'elle doit d'abord être réécrite de manière standard. Ce menu n'est vraiment pas la priorité pour l'instant.
- ce n'est pas la politique de la maison : si tu viens ici, c'est que tu souhaite d'abord savoir où trouver l'info qui te permettra d'apprendre. Les réponses "clés en main" sont l'exception, comme l'indiquent les
règles du forum
Modifié par Laurent Denis (18 Jul 2005 - 07:05)