5568 sujets

Sémantique web et HTML

Salut tout le monde,

J'ai un petit problème avec la validation W3C HTML : je vous explique le problème.

J'ai monté un site qui comporte une page principale d'une part, et cette dernière est composée d'includes d'autres pages.

Quand je passe chacune des pages indépendamment au validateur, ca joue, c'est validé, mais quand je passe la page de résultat... le validateur gueule et me trouve des erreurs.

Z'avez une idée ?
merci d'avance
Bonjour,

Sans la moindre ligne de code, ça va être difficile de t'aider, tu ne penses pas? Smiley rolleyes

Ceci dit, si le validateur valide (...) tes pages indépendamment les unes des autres, c'est que as très probablement déclarer un doctype pour chacune d'elle, un head, etc.
Ah oui désolé... sans le code effectivement .. lol

Je sais pas si je dois mettre le code.. y'en a un voyage.. enfin je tente..

Page générale (qui va contenir les autres pages)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><?php print "$titresite";?></title>
<meta name="Author" content="Kangoo InfoServices">
<meta name="Reply-to" content="info@kangoo-infoservices.com">
<meta name="Copyright" content="Kangoo InfoServices">
<meta name="revisit-after" content="6 day">
<meta name="Robot" content="index,follow,all">
<meta name="language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="<? print "$modelesite";?>" rel="stylesheet" type="text/css">

</head>
<body>
<?php

	require($_SERVER["DOCUMENT_ROOT"]."/cms/include/fonctions.php");

	if (!isset($_GET['largeur'])) 
	{ 
			  // passage des variables de dimensions 
			  // (préservation de la requête d'origine 
			  //  -- les variables par méthode POST doivent être traitées différemment) 
			
			  echo "<script type=\"text/javascript\">\n"; 
			  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}" . "&largeur=\" + screen.width + \"&hauteur=\" + screen.height;\n"; 
			  echo "</script>\n"; 
	}

		$largeur=$_GET["largeur"];
		
		// défini l'emplacement suivant la largeur principale
		$leftpos= ($largeur - $larg1) /2; 

?>		
<div id="total" style="position:absolute; visibility: inherit; height:<?php echo "$hauteur_principale";?> width:<?php echo "$largeur_principale";?> left:<?php echo "$leftpos";?>" class="mainlayer"> 
	
		<div id="logo" style="position:absolute;" class="logo"></div>
	
		<div id="sommaire" style="position:absolute;" class="sommaire">
				<?php	// Affiche le sommaire
					CreateSommaire();
				?>
		</div>
		
		<div id="menusup" style="position:absolute;" class="menu_superieur"></div>
		<div id="menu2" style="position:absolute;" class="textes"></div>
		<div id="menuinf" style="position:absolute" class="menu_inferieur"></div>

		
		
		 <div id="central" style="position:absolute;" class="central" >
				<?php 
				include($_SERVER['DOCUMENT_ROOT']."/cms/templates/module1.php");
				?>
	  </div>

</div>

		<div id="menubas" style="position:absolute; left:<?php echo "$leftpos";?>"" class="menu_bas"></div>
</body>
</html>


et la page contenue :

<?php

	$access = $_SERVER['PHP_SELF'];
	if (strpos($access,"module1.php")) 
	{
		die ("Access violation");
	}
	
	require_once($_SERVER['DOCUMENT_ROOT']."/cms/include/fonctions.php");
	require_once($_SERVER['DOCUMENT_ROOT']."/cms/include/param_start.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="<? print "$modelesite";?>" rel="stylesheet" type="text/css">
</head>

<body>

	 <div id="principal" style="position:absolute;width:500px" class="texte_central">
		<?
			OpenPage($startpage);
		?>
	</div>
	
	<div id="separator" style="position:absolute; height:<?php print "$hauteur_separator";?>" class="separator"></div>

	
		<div id="newsgroup" style="position:absolute; " class="menu_news" >
		
				<div id="pub" style="position:absolute;" class="news_article_pub">
					<?php

					
					echo "<b class='news_article_som_titre'>$txt_pub</b>";
					// affiche les annonces pub
					CreateArticlePub();
					?>
				</div>
				
			
				
				<div id="news2" style="position:absolute;" class="news_article_som">
					<?php
					echo "<b class='news_article_pub_titre'>$txt_lastnews</b>";
					// affiche les annonces pub
					CreateArticleFirst();
					?>
				</div>
				
				
				<div id="partenaires" style="position:absolute;" class="partenaires_som">
					<?php
						echo "<b class='news_article_som_titre'>$txt_partners</b>";
						// affiche les annonces partenaires
					 ?>
					<div align="center"><img src="../images/logo_partner_50mm.gif" width="142" height="34" alt=""></div>
		  		</div>
				
		</div>
</body>
</html> 

Modifié par kangooinfo (26 Mar 2007 - 11:36)
Modérateur
arf... Le mieux serait plutôt une page en ligne. Smiley cligne

Ton code PHP n'est pas d'un grand secours vu qu'une erreur pourrait se trouver dans une include... (ce qu'on ne voit pas...)
Modifié par koala64 (26 Mar 2007 - 11:40)
Bonjour,

Je suppose que tu comptes utiliser les include en PHP pour éviter de dupliquer l'interface de ton site ?

Si c'est le cas, deux remarques :
- si tu inclues le code d'une page complète dans une page HTML déjà complète, tu vas te retrouver avec un code généré complètement destructuré (deux doctypes, deux éléments html, deux body...) ;
- le doctype de ta page contenante est faux, car incomplet (il manque l'URL de la DTD).

Voir, pour les doctypes HTML 4.01 :
http://www.w3.org/TR/html401/struct/global.html#h-7.2
Florent V. a écrit :
Bonjour,

Je suppose que tu comptes utiliser les include en PHP pour éviter de dupliquer l'interface de ton site ?

Si c'est le cas, deux remarques :
- si tu inclues le code d'une page complète dans une page HTML déjà complète, tu vas te retrouver avec un code généré complètement destructuré (deux doctypes, deux éléments html, deux body...) ;
- le doctype de ta page contenante est faux, car incomplet (il manque l'URL de la DTD).

Voir, pour les doctypes HTML 4.01 :
http://www.w3.org/TR/html401/struct/global.html#h-7.2


En gros oui, je veux passer en fonctions ou en include au maximum afin de pouvoir utiliser les différents "composants" n'importe ou sur le site dans devoir les refaire ou les dupliquer.

Ouais je crois que le problème est là... à priori c'est ce que m'a sorti le validateur... plein de body, plein de head... plusieurs doctype...

Je dois faire quoi ? virer les doctype, body et head dans les pages inclues ??
Administrateur
kangooinfo a écrit :
Je dois faire quoi ? virer les doctype, body et head dans les pages inclues ??

Oui puisqu'au final tu ne dois te retrouver qu'avec un seul document, propre.

On n'inclut pas des documents HTML dans des documents HTML avec include().

Petit rappel
Raphael a écrit :

Oui puisqu'au final tu ne dois te retrouver qu'avec un seul document, propre.

On n'inclut pas des documents HTML dans des documents HTML avec include().

Petit rappel


Ok, je vais faire ca..
merci pour votre coup de main!
Bon j'ai encore une petite question, après ca sera bon.

Pourquoi dans XHTML, je ne peux pas mettre de php ??

j'ai ca à faire :

<title><?php echo "$titresite";?></title>

ca me met une erreur ...

désolé pour mon ignorance, mais je codais qu'en HTML simple jusqu'à maintenant.. lol
kangooinfo a écrit :
Pourquoi dans XHTML, je ne peux pas mettre de php ??

Si, on peut.

Ou plutôt : tu peux coder un script PHP contenant essentiellement un balisage HTML ou XHTML (peu importe). Tout ce qui n'est pas entre les balises <?php et ?> sera gardé tel quel dans le code (X)HTML généré.

Je ne vois pas trop ce qui t'amène à poser cette question. Le validateur HTML t'as dit que ton bout de PHP n'était pas valide ? Si c'est le cas, c'est parfaitement normal : PHP ne fait pas partie de la syntaxe HTML. Par contre, PHP peut générer du HTML en bonne et due forme. Le validateur, qui s'intéresse aux pages telles que vues par un visiteur du site, ne doit pas être utilisé pour valider un script PHP.
Florent V. a écrit :

Si, on peut.

Ou plutôt : tu peux coder un script PHP contenant essentiellement un balisage HTML ou XHTML (peu importe). Tout ce qui n'est pas entre les balises <?php et ?> sera gardé tel quel dans le code (X)HTML généré.

Je ne vois pas trop ce qui t'amène à poser cette question. Le validateur HTML t'as dit que ton bout de PHP n'était pas valide ? Si c'est le cas, c'est parfaitement normal : PHP ne fait pas partie de la syntaxe HTML. Par contre, PHP peut générer du HTML en bonne et due forme. Le validateur, qui s'intéresse aux pages telles que vues par un visiteur du site, ne doit pas être utilisé pour valider un script PHP.


Bheu ? moi pas tout compris lol

Bon je vais continuer à chercher lol
kangooinfo a écrit :


Bheu ? moi pas tout compris lol

Bon je vais continuer à chercher lol


En gros, c'est parce que ton code PHP n'a pas été interprété et que le code php est donc resté dans ta page web.

Ton fichier est bien en .php ?
nORKy a écrit :


En gros, c'est parce que ton code PHP n'a pas été interprété et que le code php est donc resté dans ta page web.

Ton fichier est bien en .php ?


C'est tout ok maintenant ! J'ai revu tout le code !
Merci pour votre aide
Modifié par kangooinfo (26 Mar 2007 - 21:45)