Problème pour valider une page en HTML 4.01 Transitional

Eléphant du PHP | 99 Messages

28 sept. 2006, 02:37

Bonjour,

Tout est dans le titre voici le message d'erreur:

Code : Tout sélectionner

Below are the results of attempting to parse this document with an SGML parser. 1.Error Line 127 column 58: end tag for "TABLE" which is not finished. <table border="0" cellpadding="0" cellspacing="0"> </table> Most likely, You nested tags and closed them in the wrong order. For example <p><em>...</p> is not acceptable, as <em> must be closed before <p>. Acceptable nesting is: <p><em>...</em></p> Another possibility is that you used an element which requires a child element that you did not include. Hence the parent element is "not finished", not complete. For instance, <head> generally requires a <title>, lists (ul, ol, dl) require list items (li, or dt, dd), and so on.
En enlevant la balise </table> ,mon design est carrément foutu, j'ai également essayé de l'enlever et de rajouter ailleurs mais en vaint...

Si une personne aurait une solution, je suis preneur :)

Merci d'avance,

Cordialement;[/code]

Mammouth du PHP | 19672 Messages

28 sept. 2006, 07:32

Sans voir le code HTML correspondant, difficile de te répondre. Ce que t'indique le message, c'est qu'il y a des inversions interdites dans certaines balises de fermeture ou encore des balises non fermées.

En HTML 4, certaines balises ont une fermeture obligatoire, d'autres facultatives, d'autres enfin interdites. Il faudrait donc voir ce que tu as mis entre les balises d'ouverture et de fermeture de ta table.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 99 Messages

28 sept. 2006, 12:40

Voici le code Html entre la balise <table> et </table> qui est plus haut

Code : Tout sélectionner

<td style="background-image:url('image/fon02.gif');" height="87" align="center" width="377"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td rowspan="2" width="130"><p><img src="image/e06.gif" width="16" height="9" alt="" border="0">&nbsp;&nbsp;<b>Members Login</b></p></td> <td> <input type="Text" name="" value=" USERNAME" size="15"></td> <tr> <td><input type="Text" name="" value=" PASSWORD" size="10"><input type="Image" src="image/b_go.gif" alt=""></td> </tr> </table>
et là le code html ou ya l'erreur:

Code : Tout sélectionner

<td style="background-image:url('image/fon02.gif');" height="87"><img src="image/e01.gif" width="2" height="87" alt="" border="0"></td> <td style="background-image:url('image/fon02.gif');" height="87" align="center" width="380"> <table border="0" cellpadding="0" cellspacing="0"> </table>
Encore un peu de code pour mieux "voir"

Code : Tout sélectionner

<td style="background-image:url('image/fon02.gif');" height="87" align="right"><img src="image/e02.gif" width="21" height="87" alt="" border="0"></td> </tr> <tr> <td colspan="4" height="21" style="background-image:url('image/fon03.gif');"><img src="image/px1.gif" width="1" height="1" alt="" border="0"></td> </tr></table>
Est-ce plus clair ?

Eléphant du PHP | 99 Messages

29 sept. 2006, 02:29

up ^^

Mammouth du PHP | 19672 Messages

29 sept. 2006, 02:39

Ton code est un vrai foutoir, essaye de prendre l'habitude de l'aligner proprement en mettant une indentation : du peu que j'ai réussi à voir, il y a ceci :

Code : Tout sélectionner

<td style="background-image:url('image/fon02.gif');" height="87" align="center" width="377"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td rowspan="2" width="130"> <p><img src="image/e06.gif" width="16" height="9" alt="" border="0">&nbsp;&nbsp;<b>Members Login</b></p> </td> <td> <input type="Text" name="" value=" USERNAME" size="15"> </td> <!-- ICI un </tr> manquant ! --> <tr> <td><input type="Text" name="" value=" PASSWORD" size="10"><input type="Image" src="image/b_go.gif" alt=""></td> </tr> </table>
Et si jamais c'est pas encore ça, met la table complète, pas juste la table imbriquée.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 55 Messages

29 sept. 2006, 13:21

Une table doit TOUJOURS avoir une ouverture ET une fermeture, et ce, même dans les ligne et les cellule !!

Exemple d'une simple table à 4 cellules sur 2 lignes :

Code : Tout sélectionner

<table> <tr> <td>Ma cellule 1</td> <td>Ma cellule 2</td> </tr> <tr> <td>Ma cellule 3</td> <td>Ma cellule 4</td> </tr> </table>
même exemple avec des explications afin que tu comprennes :

Code : Tout sélectionner

<table> // Balise d'ouverture de la table <tr> // Balise d'ouverture de mise en forme d'une ligne <td>Ma cellule 1</td> // Balise d'ouverture et de fermeture d'une cellule <td>Ma cellule 2</td> // Balise d'ouverture et de fermeture d'une cellule </tr> // Balise de fermeture de la ligne <tr> // Balise d'ouverture de mise en forme d'une ligne <td>Ma cellule 3</td> // Balise d'ouverture et de fermeture d'une cellule <td>Ma cellule 4</td> // Balise d'ouverture et de fermeture d'une cellule </tr> // Balise de fermeture de la ligne </table> // Balise de fermeture de la table

Donc, mes réaction par rapport à ton code :

1. je ne vois pas ce que fait ce bout de code :

Code : Tout sélectionner

<td style="background-image:url('image/fon02.gif');" height="87" align="center" width="377">
Est-il dans le vide ?? Car si tu regardes mon exemple plus haut, cette balise devrait se trouver à l'intérieur d'une balise <table> et <tr> de plus, elle n'a même pas de fermeture !! Alors elle fait quoi cette balise à cet endroit ??

2. Comme l'a dit Cyrano, lorsque l'on débute, il est important d'imbriquer ces balises correctement, car l'on évite beaucoup d'erreur, surtout dans la fermeture et l'ouverture des balises... Regarde encore mon exemple ! Tu as vu comment j'ai placé chaque balise ? La balise <table> est à la même hauteur que la balise </table>. La balise <tr> est aussi à la même hauteur que la balise </tr>... etc. Cela te permet d'avoir une vision correcte de l'édition de tes codes et aussi de voir si tu n'as pas oublié une fermeture à quelque part... J'ai plus de 8 ans d'expérience dans le HTML, mais pour ne rien te cacher, j'imbrique toujours correctement mes balises, car si il y a un oublis, il est facile de le retrouver :)
www.rinabk.com • sims.rinabk.com •

Invité
Invité n'ayant pas de compte PHPfrance

29 sept. 2006, 16:17

Bonjour,

Oui c'est vrai c'était plus que le bazard j'ai du prendre 2h pour recoder la page niquel et la validation passe, merci à vous :)

Mammouth du PHP | 19672 Messages

29 sept. 2006, 16:31

Petite note cependant : en HTML 4, la fermeture des balises <td> est optionnelle. MAIS je recommande vivement de prendre l'habitude de systématiquement les fermer.

J'irais même plus loin en te recommandant de passer au XHTML : là, pas d'inquiétudes, TOUTES les balises doivent être fermées sauf une : la balise <!DOCTYPE..> mais cette dernière n'est pas une balise HTML mais une balise SGML. Pour les autres, qu'elles soient conventionnelles comme par exemple <p></p> ou dites "vides" comme <br /> (<br> en HTML 4) doivent être fermées obligatoirement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 99 Messages

29 sept. 2006, 17:40

Oki Cyrano merci du conseil, ça fait plaisir de voir des personnes comme toi.

Amicalement :)