5568 sujets

Sémantique web et HTML

Bonjour! Je vien de me lancer dans la validation et je galére pas mal.
j'ai réussi à virer pas mal d'erreur mais il y a celle-ci que je comprend pas tro:

j'ai ce code:

<table style="width:100%;" border="0" summary="Bloc central">
<tr>
   <td style="background:url(themes/fxplanet/images/fdbloctitre2.jpg);"><p align="center"><span class="titre"><!-- Titre du bloc_head -->'.$titre.'</span></p></td>
</tr>


et le validateur me done l'erreur suivante:

Error Line 100 column 60: document type does not allow element "table" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag.

<table style="width:100%;" border="0" summary="Bloc central">

The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.

One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").


je ne comprend pas trop ce qui ne va pas... Smiley confus

merci d'avance de votre aide
Bonjour,

Je te conseille dans un premier temps d'analyser plutôt le code HTML généré et non le code PHP.

Ensuite, c'est ce qu'il y a autour de <table></table> qui peut jouer ici...

A bientôt,
Bonjour,

«This Page Is Valid XHTML 1.0 Transitional!»

Pour du "Strict", tu dois te débarrasser du «align="center"» !
Salut, Smiley smile

Comme le remarque à juste titre RomsIW ainsi que le du validateur :

Validateur du W3C a écrit :
One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").

Pandore a écrit :

Une cause possible de ce message est que vous avez voulu mettre un élément de type block (comme "<p>" ou "<table>") dans un élément de type inline (comme "<a>", "<span">, ou "<font>")


c'est en général un problème d'insertion de balise. Il nous faudrait voir le reste du code pour te répondre.

Smiley cligne
re.

alors voilà le code:

<table style="width:100%;" border="0" summary="Bloc central">
<tr>
   <td style="background:url(themes/fxplanet/images/fdbloctitre2.jpg);"><p align="center"><span class="titre"><!-- Titre du bloc_head -->'.$titre.'</span></p></td>
</tr>
<tr>
   <td style="text-align:left; width:100%;"><!-- Contenu du bloc_head -->
' ;
}

function open_table () {
echo '
<!--  Bloc sans titre (open_table dans le bloc.php)  -->
<table style="width:100%;" border="0" summary="Bloc sans titre">
<tr>
   <td style="width:100%;">
' ;
}


function close_table (){

echo '
<!-- Fin du contenu du bloc -->
   </td>
</tr>
</table>


encore merci de votre aide Smiley cligne
arf ! tu n'as pas bien compris lol, c'est pas ce qu'il y a dans la balise "table" qui pose problème mais ce qui entoure cette balise Smiley cligne
désolé. la balise qui entoure? Smiley confus le probléme c'est que j'en voi pas...
mon code est celui d'un théme (voir) pour un cms , et en pour le proposer officielement il doit être valide. Avant de poster ici j'ai biensûr vérifié que l'erreur donné par le validateur venez bien du théme et n'avez rien à voir avec le cms. J'ai longtemps demandé de l'aide sur leur forum (du cms) mais personne n'a été capable de répondre, c'est pour cela que je fais apppelle à vous.

je post donc le code en entier:




<?php
function admin_bloc ($titre, $image, $lien, $x)
{
echo '
<td style="width:25%; text-align:center; background-color:#ffffff">
   <p align="center"><a href='.$lien.'>' ;
   if ($image <> '') { echo '<img border="0" src='.$image.' alt='.$image.' /><br />' ; }
   echo ''.$titre.'</a></p>
</td>';
if ($x == 4) {
   echo '
   </tr>
   <tr>
      <td><br /></td>
   </tr>
   <tr>' ;
$x = 0 ;
}
return $x ;
}

function forum_cat_head () {
echo '
<!--  Entêtes des catégories de forum (forum_cat_head du bloc.php)  -->
<table class="fdnews" cellspacing="1" cellpadding="2" width="100%" border="0" summary="Catégories du forum">
<tr style="background:url(themes/fxplanet/images/fdbloctitre2.jpg);">
    <td class="titrebloc" style="height:25px; text-align:center; white-space:nowrap;" colspan="2">Forum</td>
    <td class="titrebloc"class="titrebloc" style="width:50px; text-align:center; white-space:nowrap;">Sujets</td>
    <td class="titrebloc" style="width:50px; text-align:center; white-space:nowrap;">Messages</td>
    <td class="titrebloc" style="text-align:center; white-space:nowrap;">Derniers Messages</td>
</tr>';
}


function forum_cat_mid ($image, $titre, $desc, $nb_sujet, $nb_rep, $dernier, $id) {
echo '
<!--  Contenu des catégories (forum_cat_mid du bloc.php)  -->
<tr style="background-color:#ffffff;">
    <td style="vertical-align:middle; text-align:center; height:50px;"><img src='.$image.' /></td>
    <td style="width:100%; height:50px;"><span class="forumlink">'.$titre.'<br /></span><span class="genmed">'.$desc.'</span><br /></td>
    <td style="vertical-align:middle; text-align:center; height:50px;"><span class="gensmall">'.$nb_sujet.'</span></td>
    <td style="vertical-align:middle; text-align:center; height:50px;"><span class="gensmall">'.$nb_rep.'</span></td>
    <td style="vertical-align:middle; text-align:center; height:50px; white-space:nowrap;"><span class="gensmall">'.$dernier.'</span></td>
</tr>
' ;
}

function forum_cat_sep ($titre) {
echo '
<!--  Séparateurs de catégories  (forum_cat_sep du bloc.php)-->
<tr style="background-color:#420c63;">
   <td style="height:5px;" colspan="5" ><center><strong>'.$titre.'</strong></center></td>
</tr>
';
}

// FERME LE TABLEAU DES CATEGORIES DU FORUM
function forum_cat_close () {
echo '
<!--  Fermeture des catégories forum (forum_cat_close du bloc.php)  -->
</table>
' ;
}


function forum_head () {
echo '
<!--  Sujets du forum  entêtes (forum_head du bloc.php)  -->
<table class="fdnews" style="width:100%;" cellspacing="1" cellpadding="4" border="0" summary="Sujets du forum">
<tr style="background:url(themes/fxplanet/images/fdbloctitre2.jpg);">
    <td class="titrebloc" style="text-align:center; height:25px;" colspan="2"> Sujets </td>
    <td class="titrebloc" style="text-align:center; width:50px;"> Réponses </td>
    <td class="titrebloc" style="text-align:center; width:100px;">  Auteur  </td>
    <td class="titrebloc" style="text-align:center; width:50px;"> Vus </td>
    <td class="titrebloc" style="text-align:center;"> Derniers Messages </td>
</tr>' ;
}

function forum_mid ($image, $titre, $rep, $auteur, $hits, $dernier) {
echo '
<!--  Contenu des sujets du forum (forum_mid du bloc.php)  -->
<tr style="background-color:#ffffff;">
   <td style="vertical-align:middle; text-align:center; width:20px;"><img src='.$image.' /></td>
   <td style="width:100%;"><span class="topictitle">'.$titre.'</span><br /></td>
   <td style="vertical-align:middle; text-align:center;"><span class="postdetails">'.$rep.'</span></td>
   <td style="vertical-align:middle; text-align:center;"><span class="name">'.$auteur.'</span></td>
   <td style="vertical-align:middle; text-align:center;"><span class="postdetails">'.$hits.'</span></td>
   <td style="vertical-align:middle; text-align:center; white-space:nowrap;"><span class="postdetails">'.$dernier.'</span></td>
</tr>
';
}

// CETTE FONCTION PERMET DE FERMER LA TABLE DECLAREE DANS LE
// FONCTION FORUM_HEAD()
function forum_close () {
echo '
<!--  Fermeture des sujets du forum (forum_close du bloc.php)  -->
</table>';
}

function forum_rep_head () {
echo '
<!--  Entêtes des posts du forum (forum_rep_head du bloc.php) -->
<table class="fdnews" cellspacing="1" cellpadding="4" width="100%" border="0" summary="Contenu des Posts forum">
<tr style="background:url(themes/fxplanet/images/fdbloctitre2.jpg);">
   <td class="titrebloc" style="text-align:center; width:20%;">Auteur</td>
   <td class="titrebloc" style="text-align:center; width:80%;">Réponse</td>
</tr>
';
}

function forum_rep_mid ($auteur, $message, $signature, $date, $type, $id, $contact=null) {
$retourALaLigne = '';
if ($signature != ''){
   $retourALaLigne = '<hr /><i>'.$signature.'</i><br />';
}
echo '
<!--  Contenu des posts du forum (forum_rep_mid dans le bloc.php)  -->
<tr style="background-color:#ffffff;">
   <td style="text-align:center; width:18%;"><span class="postdetails">'.$auteur.'</span></td>
   <td style="width:80%;">
      <table style="width:100%;" class="postforum" summary="Post">
         <tr>
            <td style="width:100%;"><span class="gensmall">'.$date.'</span><hr /></td>
         </tr>
         <tr>
            <td>'.$message.'<br /><br />'.$retourALaLigne.'<hr />'.$contact.'</td>
         </tr>
      </table>
    </td>
</tr>';
}


function forum_rep_sep () {
echo '
<!--  Séparateur de posts du forum (forum_rep_sep dans le bloc.php)  -->
<tr style="background-color:#420c63">
    <td colspan="2" style="height:1;"></td>
</tr>' ;
}

// FERME LE BLOC D'AFFICHAGE DES POSTS
function forum_rep_close () {
echo '
<!--  Fermeture des posts du forum (forum_rep_close dans le bloc.php)  -->
</table>
' ;
}






// c'est  a partir d' ici que le validateur me dit qu'il y a erreur 






function bloc ($titre, $contenu) {
echo '
<!--  Bloc latéral  (bloc dans le bloc.php)-->
<table class="bloclat" cellspacing="0">
<tr>
<td style="height:18px; background:url(themes/fxplanet/images/fdbloctitre2.jpg);"><p class="titrebloc" align="center"><!-- Titre du bloc -->'.$titre.'</p></td>
</tr>
<tr>
   <td style="vertical-align:top;" ><!-- Contenu du bloc -->'.$contenu.'<!-- Fin du contenu du bloc --></td>
</tr>
<tr>
<td style="height:18px; align:left; background-color:#31CFCE;">
<!--[ if IE]>
<object type="application/x-shockwave-flash" data="themes/fxplanet/images/fd.swf" width="60" height="18" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<param name="movie" value="themes/fxplanet/images/fd.swf" />
<img src="no.gif" alt="" width="0" height="0" />
</object>
<![ endif]-->
<!--[ if !IE]> <-->
<object type="application/x-shockwave-flash" data="themes/fxplanet/images/fd.swf" width="60" height="18">
<param name="movie" value="themes/fxplanet/images/fd.swf" />
<img src="no.gif" alt="" width="0" height="0" />
</object>
<!--> <![ endif]-->
</td>
</tr>
</table><br/>
<!--  Fin de bloc latéral-->' ;
}

function bloc_head ($titre) {
echo '
<!--  Bloc central  (bloc_head dans le bloc.php)-->
<table style="width:100%;" border="0" summary="Bloc central">
<tr>
   <td style="background:url(themes/fxplanet/images/fdbloctitre2.jpg);"><p align="center"><span class="titre"><!-- Titre du bloc_head -->'.$titre.'</span></p></td>
</tr>
<tr>
   <td style="text-align:left; width:100%;"><!-- Contenu du bloc_head -->
' ;
}

function open_table () {
echo '
<!--  Bloc sans titre (open_table dans le bloc.php)  -->
<table style="width:100%;" border="0" summary="Bloc sans titre">
<tr>
   <td style="width:100%;">
' ;
}


function close_table (){

echo '
<!-- Fin du contenu du bloc -->
   </td>
</tr>
</table><br />
<!--  Fin de bloc  -->';
}


function archive_head (){
bloc_head('Téléchargements');
global $id;
if (!isset($id)) {
echo '
<table class="fdbloc" cellspacing="0" cellpadding="1" style="width:100%;" border="0">
<tr>
   <td style="background-color:#FFFFFF; text-align:center; height:25px;" colspan="2"><strong><a href="index.php?mod=archives&amp;ac=alph">Programme</a></strong></td>
   <td style="background-color:#FFFFFF; text-align:center; width:100px;"><strong><a href="index.php?mod=archives&amp;ac=cat2">Catégorie</a></strong></td>
   <td style="background-color:#FFFFFF; text-align:center; width:100px;"><strong><a href="index.php?mod=archives&amp;ac=auteur">Auteur</a></strong></td>
   <td style="background-color:#FFFFFF; text-align:center; width:100px"><strong><a href="index.php?mod=archives&amp;ac=taille">Taille</a></strong></td>
   <td style="background-color:#FFFFFF; text-align:center; width:100px"><strong><a href="index.php?mod=archives&amp;ac=hit">Téléchargements</a></strong></td>
</tr>' ;
} else {
echo '
<table cellspacing="0" cellpadding="1" style="width:100%;" border="1">
<tr>
   <td style="background-color:#FFFF00; text-align:center; height:25px;" colspan="2" ><strong><a href="index.php?mod=archives&amp;ac=alph&amp;id='.$id.'">Programme</a></strong></td>
   <td style="background-color:#FFFF00; text-align:center; width:100px;"><strong><a href="index.php?mod=archives&amp;ac=cat2">Catégorie</a></strong></center></td>
   <td style="background-color:#FFFF00; text-align:center; width:100px;"><strong><a href="index.php?mod=archives&amp;ac=auteur&amp;id='.$id.'">Auteur</a></strong></center></td>
   <td style="background-color:#FFFF00; text-align:center; width:100px;"><strong><a href="index.php?mod=archives&amp;ac=taille&amp;id='.$id.'">Taille</a></strong></center></td>
   <td style="background-color:#FFFF00; text-align:center; width:100px;"><strong><a href="index.php?mod=archives&amp;ac=hit&amp;id='.$id.'">Téléchargements</a></strong></td>
</tr>';
}
}

function archive_mid ($id, $prog,$cat, $auteur, $taille, $dl, $theme){
if ($id=='')
{
echo '
<tr>
   <td class="row1" style="vertical-align:middle; text-align:center; width:20px;">erreur</td>
   <td class="row1" style="width:100%;"><br /></td>
   <td class="row2" style="vertical-align:middle; text-align:center;"></td>
   <td class="row3" style="vertical-align:middle; text-align:center;"></td>
   <td class="row2" style="vertical-align:middle; text-align:center;"></td>
   <td class="row3" style="vertical-align:middle; text-align:center; white-space:nowrap;"></td>
</tr>
' ;
} else {
echo '
<tr>
   <td class="row1" style="vertical-align:middle; text-align:center; width:20px;"><a href="modules/archives/download.php?id='.$id.'"><img src="themes/'.$theme.'/images/archives/';
      if ($ext == 'exe' or $ext == 'com' or $ext == 'bat' or $ext == 'msi') {
        echo 'exe.gif';
      } elseif ($ext == 'rar' or $ext == 'zip') {
        echo 'zip.gif';
      } else {
        echo 'file2.gif';
      }
      echo '" width="16" height="16" border="0" alt="T&eacute;l&eacute;charger '.$prog.'" /></a></td>
   <td class="row1" style="vertical-align:middle; text-align:center;"><span class="topictitle"><a href="index.php?mod=archives&amp;ac=voir&amp;id='.$id.'">'.$prog.'</a></span><br /></td>
   <td class="row2" style="vertical-align:middle; text-align:center;"><a href="index.php?mod=archives&amp;ac=cat&amp;id='.$cat.'"><span class="postdetails">'.$cat.'</span></a></td>
   <td class="row3" style="vertical-align:middle; text-align:center;"><span class="name">'.$auteur.' </span></td>
   <td class="row2" style="vertical-align:middle; text-align:center;"><span class="postdetails">'.$taille.'</span></td>
   <td class="row3" style="vertical-align:middle; text-align:center; white-space:nowrap;"><span class="postdetails">'.$dl.'</span></td>
</tr>' ;
}
}

function archive_close () {
echo '
</table>
' ;
close_table();
}

function bloc_article_cat ($id, $titre, $image, $contenu) {
if ($image!=''){
   $image='<a href="index.php?mod=articles&amp;ref='.$id.'"><img src='.$image.' align="left" border="0" /></a><br />' ;
} else {
  $image='' ;
}  
echo '
<!--  Bloc Articles  (bloc_article_cat du ploc.php)  -->
<table class="fdnews" style="width:100%;" border="0" summary="Articles">
<tr>
   <td style="background-color:#00FFFF; height:21px;"><img src="themes/vide/images/punaise.gif" alt="Punaise" border="0" /><a href="index.php?mod=articles&amp;ref='.$id.'"><span class="cattitle">  '.$titre.'</span></a></td>
</tr>
<tr>
   <td class="row1" style="text-align:left; width:100%;">'.$image.' '.$contenu.'</td>
</tr>
</table><br />
<!--  Fin Bloc Articles  -->' ;
}
function bloc_news ($titre, $date, $auteur, $image, $contenu, $hit, $id_comment, $id_auteur, $nbcomm, $avatar) {
global $grade;
$editer = '';
if ($grade>=3) {
   $editer ='<br /><a href="index.php?mod=news&amp;ac=gestion&amp;faire=edit&amp;id='.$id_comment.'">Editer cette news</a>';
}
$mois  = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
$jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$date  = $jours[date('w',$date)].' '.date('j',$date).(date('j') == 1 ? 'er ' : ' ').$mois[date('n',$date)-1].' '.date('Y',$date).' à '.date('H\:i',$date);


if ($nbcomm==0) {
    $commentaire = '<a href="index.php?mod=news&amp;ac=commentaires&amp;id='.$id_comment.'">Aucun commentaire</a>' ;
} elseif ($nbcomm==1) {
    $commentaire = '<a href="index.php?mod=news&amp;ac=commentaires&amp;id='.$id_comment.'">1 commentaire</a>' ;
} else {
    $commentaire = '<a href="index.php?mod=news&amp;ac=commentaires&amp;id='.$id_comment.'">'.$nbcomm.' commentaires</a>' ;
}    
$hits = ''.$hit.' lecture(s)' ;
$date = 'Ajouté par <a href="profil.php?id='.$id_auteur.'"><strong>'.$auteur.'</strong></a> le '.$date.' -> '.$commentaire.'' ;

echo '
<!--  Bloc News  (bloc.php)-->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td style="height:18px; background:url(themes/fxplanet/images/fdbloctitre2.jpg);" ><a href="index.php?mod=news&ac=commentaires&id='.$id_comment.'"><span class="titrebloc"> :: '.$titre.' :: ['.$hits.']</span></a></td>
   </tr>
  <tr>
    <td colspan="2" style="background-color:#00FFFF;">'.$contenu.'<br/><span class="titrebloc"><br/>
    '.$date.'</span>
    </td>
  </tr>

</table><br/>
<!--  Fin Bloc News  -->' ;
}
// FIN :: AFFICHAGE BLOC NEWS //
//************ FIN BLOC NEWS ************//

// Ne pas modifier
function func_date ($temps){
$mois  = array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
$jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$date  = $jours[date('w',$temps)].' '.date('j',$temps).(date('j') == 1 ? 'er ' : ' ').$mois[date('n',$temps)-1].' '.date('Y',$temps).' à '.date('H\:i',$temps);
return $date ;
}
?>


encore désolé de vous déranger avec ça et encore merci.
jejeduweb a écrit :
désolé. la balise qui entoure? Smiley confus le probléme c'est que j'en voi pas...

huuummmm ... tu en est bien sûr ??? Smiley murf :
code source de ta page web a écrit :
<p align="center">
<!-- Bloc central (bloc_head dans le bloc.php)-->
<table style="width:100%;" border="0" summary="Bloc central">

insérer une table dans un paragraphe, le validateur n'aime pas Smiley cligne