5568 sujets

Sémantique web et HTML

Salut

Soit un code du style

<?php
if (!isset($_SERVER["REDIRECT_STATUS"])) header("Location: /");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">


J'obtiens au validateur une erreur du style


Document Checked
Level of HTML: Unknown 

Errors and Warnings
 http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd,  line 237, character 28: omitted tag minimization parameter can be omitted only if "OMITTAG NO" is specified on the SGML declaration 


Enfin quand je dis une, je fais sauter le compteur d'erreur de validation !

J'ai fini par comprendre que le doctype devait être en première ligne avant toute chose... (j'utilisais un hack IE pour fixer l'entête en haut de page avec un commentaire avant le doctype et j'obtenais les mêmes messages

Mais le header aussi doit être en haut du code, avant tout envoit vers le client de code HTML...

Donc si je veux que cette page (et toute autre page du même genre) soit validable -et si possible correcte niveau comportement Smiley biggol - il faut s'y prendre comment ?

le doctype n'est pas considéré comme du code HTML ? et donc mettre la ligne en premier et le PHP ensuite ?

J'ai beau chercher, je ne vois pas - surtout que je ne sais plus à quoi me sert mon header... Ah si, ça doit peut-être être pour éviter d'entrer dans cette page directement mais uniquement en cas d'erreur sur le site (page gérée par le .htacceess)

Si quelqu'un avait le début du commencement d'une piste, pour résoudre le problème et pour ma culture personnelle, il en serait bénie pour les 13 générations à venir... Désolé, j'ai vu hier soir les scènes des Rois Maudits tournées dans mon village Smiley langue

cf: Deux fois la même vidéo à suivre (j'suis pas doué Smiley cligne ) sur la page http://www.champeaux-77.fr
Modifié par Bob (MC Melun) (22 Nov 2005 - 11:32)
Greugneu ? Pas compris.

Rassures-moi, tu n'essaies pas de valider la page avec le PHP dedans, hein ?
Parcequ'a ce moment là, ton fichier n'est pas valide, ça c'est sûr.
Modifié par Lanza (22 Nov 2005 - 16:41)
Rassures toi...

Non, je valide la page PHP depuis le serveur, donc la page est en HTML... Mais ça fait la même chose si j'ai un commentaire HTML en première ligne pour cacher le doctype à IE (un Hack que j'utilisais)...

Une autre page PHP avec exactement la même structure mais rien devant la doctype passe très bien, elle...

Par exemple sur mon site moto, que je suis en train de valider, il y a des pages en HTML et d 'autres en PHP et ça passe très bien sans cette erreur là - j'en ai d'autres, de mon fait Smiley cligne
Bonjour,
Ca n'a strictement rien à voir.

La fonction header doit être appelée avant envoi de tout octet au client, donc avant le doctype, avant le HTML, et avant n'importe quoi d'autre.
Le doctype, lui, doit faire partie des premiers octets envoyés au navigateur.
Je ne vois pas où il peut y avoir un conflit. S'il y a des header à envoyer, il faut le faire avant l'envoi du doctype, et l'inverse est impossible.