5568 sujets

Sémantique web et HTML

Bonjour,

Suite à mon sujet sur les ancres du 22/09 ou on m'a fait gentiment remarqué que j'avais 266 erreurs Smiley biggrin , j'ai tout retravaillé.
effectivement à présent c'est beaucoup plus clair et il me reste 3 erreurs Smiley lol

Les erreurs ONFOCUS et ONBLUR je les garde car cela est en rapport avec le menu de la barre haute. si je retire ces deux attributs il n' y a plus de navigation possible via le clavier.

ce qui me pose souci c'est l'erreur concernant le <body>
Alors bien entendu au dessus de la ligne body je n'ai pas fermé la balise <head> car elle est fermée plus loin dans le script qui appelle la page centrale.
En effet pour chaque page je désire un <title> différent.

Quelqu'un a une solution à ce problème

Je vais tout de même vous donner le lien du site
http://www.ustirgouvieux.com
et j'ai fait la validation via Validome

Merci d'avance de votre aide
Modifié par pounie (25 Oct 2007 - 15:45)
pounie a écrit :
Alors bien entendu au dessus de la ligne body je n'ai pas fermé la balise <head> [...] Quelqu'un a une solution à ce problème?

C'est une faute de syntaxe. Solution: corriger la faute de syntaxe, en fermant l'élément head avant d'ouvrir l'élément body. Ya pas trente-six solutions...

pounie a écrit :
car elle est fermée plus loin dans le script qui appelle la page centrale.
En effet pour chaque page je désire un <title> différent.

Si l'organisation de ton script t'oblige à faire n'importe quoi avec ton code HTML, cette organisation est à revoir.

Parmi les possibilités:
- stocker les titres de page et contenus en base de données;
- stocker les titres de page dans un tableau associatif défini dans un fichier adhoc, et les contenus HTML (contenu de body uniquement) dans des fichiers .html ou .php;
- utiliser un CMS minimaliste comme par exemple Pluxml;
- faire les choses dans l'autre sens: chaque page est un script PHP qui appelle (include...) les parties communes telles que le Doctype et certains éléments de head, le menu, etc.
Merci pour la réponse mails là il y a des choses qui m'échappe ...

Concernant le <head> manquant je suis d'accord mais pour le reste j'ai du mal à comprendre
Voici le code de ma page index.php :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/transitional.dtd">
<html lang="fr">

<body id="conteneur">

<?php 
    include("haut.php");
    include("gaucheaccueil.php");
 
$pageOK = array('0' => 'le_club/accueil.php',
'01' => 'le_club/Installations/installations.php',
'02' => 'le_club/Horaires/horaires.php',
'03' => 'le_club/Tarifs/tarifs.php',
'04' => 'le_club/Acces/plan.php',
etc ...

if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    include($pageOK[$_GET['page']]); 
}
else {
    include ("centre.php");
  }
    include ("piedprincipal.php");
?>
<!-- /div -->
</body>
</html>


Concernant la page centre.php j'inclus en haut de page ce code :

<?php
    include_once ("head/head_accueil.html");
?>


et le head_accueil.html renvoie à ça :

<?php
include ("fonctionshead.php");
$headaccueil=headaccueil();
?>


la fonction donne cela :

function headaccueil() {
print" 
    <title>Le tir sportif à US Tir Gouvieux</title>
  	<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
    <meta http-equiv=\"Content-Language\" content=\"fr\">
    <meta name=\"Description\" content=\"US Tir Gouvieux : club de tir sportif à Gouvieux dans l'Oise en pistolet, 
    carabine, arbalete match, arbalete field et armes anciennes\">
    <meta name=\"Keywords\" content=\"tir sportif, tir, sport, gouvieux, oise, picardie, 
    tir, pistolet, carabine, arbalete field, arme ancienne, poudre noire, ecole de tir, resultats, 
    stand de tir, revolver, arme, competition, cible, FFTIR, 18m, IR900,\">
    <meta name=\"Author\" content=\"jean-michel Gautier\">
    <meta name=\"Reply-to\" content=\"tir.gouvieux@wanadoo.fr\">
    <meta name=\"Identifier-URL\" content=\"http://www.ustirgouvieux.com\">
    <meta name=\"Copyright\" content=\"US Tir Gouvieux\">
    <meta name=\"Revisit-after\" content=\"10 days\">
    <meta name=\"Robots\" content=\"all\">
	</head>";
return  $headaccueil;
}


bon mon erreur dans la validation est :
Ligne Colonne: 1
27 Erreurs: La balise body est interdite ici.
Position de l'erreur:
<body id="conteneur">

Mais je suis bien obligé de mettre cette balise ici puisque c'est le corps total du site !
Je ne peux pas l'inclure dans ma fonction citée précédemment...

Voilà mon interrogation ?
Merci d'avance pour vos éclaircissements
Heu... là franchement ça me dépasse. Pas que je n'y comprenne rien (je connais un peu PHP), mais j'ai l'impression que tu as ton organisation un peu tirée par les cheveux pour générer le code HTML de tes pages à partir de plusieurs «sources», et je n'ai pas vraiment l'énergie (ni les données nécessaires) pour comprendre comment tu procèdes exactement et suggérer des correctifs.

Ce qui est sûr, c'est qu'il est préférable de générer un code HTML valide, notamment en ce qui concerne les principales balises comme <html>, <head>, <body>, etc. Si tu places body dans head, head dans body, ou fait se chevaucher les deux, ou encore places head après body... ça ne va pas. Il y a une syntaxe HTML à respecter, ça n'est pas bien compliqué. Ensuite, je te laisse voir par quels moyens techniques tu peux gérer la génération de tes pages HTML tout en ayant des «sources» éparpillés. J'en ai indiqué quelques uns, même s'il ne s'agissait à chaque fois que des très grandes lignes.
Bonjour,

Bien entendu tous les mélanges que je faisais n'étaient pas très orthodoxes.

Mais vraiment je ne voyais pas par quel bout le prendre, mais la vérité était, une fois de plus de plus, dans Alsacréations et dans un sujet de forum de 2005
http://forum.alsacreations.com/topic-23-9673-1-Pseudo-frames---Comment-adapter-le-texte-de-la-barre-de-titre.html

Pour l'instant c'est en test en local car tous les scripts sont à reprendre mais cela à l'air de fonctionner.

Merci encore