Problèmes d'includes et de W3C - PHP - Programmation
Marsh Posté le 03-11-2005 à 17:54:50
Pour le coup de la session, tu peux soit t'arranger pour lui fournir une URL avec le phpsessid en param dedans, soit utiliser le "validate local html" de l'extension "web developper" de Mozilla/Firefox.
Pour le second point je ne comprends pas par contre quel est le problème Tu ne dois envoyer au validateur que les pages complètes telles que reçues par l'utilisateur, pas chaque fichier PHP séparément.
Marsh Posté le 03-11-2005 à 18:01:38
Une fois que tu as compris que le parser voit la même chose que ton visiteur lambda t'as tout compris
Marsh Posté le 03-11-2005 à 18:06:12
pour la session je fais une simple vérif avec un if !isset...etc
Mon problème est que quand je soumet ma page complète au validateur il "ouvre" les includes pour vérifier leur contenu et s'arrete a la fin de celle ci, donc si l'include ne contient pas d'erreur il me valide la page de l'include et ne continue pas le reste du document.
En gros il me mettra 'document validé' alors qu'en fait il n'a validé que la page include 'auth.php' en début de mon 'index.php', et non 'index.php' dans son intégralité.
Marsh Posté le 03-11-2005 à 18:08:45
Le validateur il reçoit la même chose qu'un browser web hein, il sait pas qu'y a des include, il reçoit juste du HTML (heureusement, sinon ça voudrait dire que n'importe qui peut aller voir ton PHP en se faisant passer pour un validateur )
Si le problème c'est qu'il faut un cookie pour voir la page, alors il faut envoyer tout l'HTML, cf mon message précédent... Sinon arrange-toi pour lui donner un ID de session valable dans l'URL
Marsh Posté le 03-11-2005 à 18:09:48
ben c'est ce que je me disais aussi, avant de voir qu'il allait chercher son html dans mes includes puisque c'est la source qu'il m'affiche
au secours ^^
Marsh Posté le 03-11-2005 à 18:10:34
la source de quoi ? il va rien chercher dans tes include...
Marsh Posté le 03-11-2005 à 18:13:09
Envoies nous l'adresse de ton site.
Marsh Posté le 03-11-2005 à 18:17:11
vaut peut être mieux pas
non mais je vais essayer d'y voir plus clair
-> il m'affiche vraiment le code html des pages include.
-> Quand j'enlève les includes, la il me vérifie bien le code de la page index.php
Question : est ce que je dois remettre des balises <!DOCTYPE...etc a chaque fois , meme dans les includes ? (de toutes facon ca marche pas quand meme ^^)
Marsh Posté le 03-11-2005 à 18:19:55
Bah oui mais bon ton browser aussi il affiche le code HTML des pages include... Si t'inclus des trucs qui génèrent du HTML c'est pour l'afficher hein
Un clic droit -> view source affichera la même chose que ce que reçoit le validateur (à part cookies/sessions, mais bon, cf mon premier post)
Doctype c'est pour le document HTML généré, rien à voir avec les include. Tout comme <html> <head> <title> <body> et compagnie. T'en mets pas un par include...
N fichiers PHP (1 fichier PHP qui en inclut d'autres) donnent 1 document HTML. Ce qui compte pour le client et le validateur c'est le document HTML créé, le nombre de fichiers PHP, les include, etc. il s'en fout, il n'a pas à le savoir, il ne peut pas le savoir.
Marsh Posté le 03-11-2005 à 18:25:09
je vais vous afficher a quoi ressemble mon code, peut etre que vous y verrez plus clair (et moi aussi ^^) pour m'aider, parce que la je désespère :
Code :
|
Ca aurait il rapport avec le fait que je met le html dans un echo ?
Marsh Posté le 03-11-2005 à 18:29:01
Essaye ça...
Code :
|
Montre nous ton auth.php je suis sur qu'il y a pleins de choses intéréssantes dedans comme par exemple des exit(), echo, etc..
Marsh Posté le 03-11-2005 à 18:29:38
@omega2 :
je vais sur le site du W3C, je met l'url de ma page dans la case url, et je clique, et je recoi l'erreur, et je me cogne la tete contre le bureau
Marsh Posté le 03-11-2005 à 18:30:22
@2xyo => jessaie en ce moment meme, je me cogne encore la tete si c'est aussi c*@-
Marsh Posté le 03-11-2005 à 18:30:49
T'es au courant qu'il ne doit rien y avoir comme texte avant la balise <html> (à l'exception du doctype et d'une autre balise dont je me rapelle plus le nom et qui sert à indiquer que c'est un document xml) et rien aprés le </html> ?
Marsh Posté le 03-11-2005 à 18:31:54
chocolatebar > oups, désolé, j'ai posté trop tard et quand j'ai vu que la réponse coulé de source plus haut, j'ai effacé mon message.
Au fait, tu fais quoi dans ton auth.php ?
Marsh Posté le 03-11-2005 à 18:33:14
mdr, y'a pas de mal, quant a ton autre message je le sais, mais j'ai du pensé que echo était comme session_start, qu'il se mettait avant
Marsh Posté le 03-11-2005 à 18:35:46
je parlais pas du echo (qui affiche ce qui le suis) mais diu fichier inclus qui envoie du texte au navigateur. Et comme il est situé avant le <html>, ca arrrivera au navigateur avant le <html> et ca sera donc dans une partie de la page html où c'est interdit.
Marsh Posté le 03-11-2005 à 18:39:13
Le code source de ton auth.php nous aidera certainement à y voir plus clair.
Marsh Posté le 03-11-2005 à 18:42:25
je pense aussi, parce que j'ai beau modif toutes les 30 secondes je me retrouve avec le meme problèmes.
Voici le code
Code :
|
Marsh Posté le 03-11-2005 à 18:45:51
Le validateur arrivera toujours sans session, DONC il verra uniquement le 'erreur...blabla!' et c'est tout comme il y a le exit() ensuite...
Marsh Posté le 03-11-2005 à 18:53:43
Je te préconise de simplement dépalcer le auth.php
Code :
|
et dans le auth.php
Code :
|
Marsh Posté le 03-11-2005 à 19:02:54
oui j'avais essayé ca. Ca marchait pas non plus.
Mais la j'ai sucré le exit; , et ca marche.
A part qu'après le auth.php devient obsolète, donc en fait il faut que je fournisse une variable de session correcte au validateur comme le disais plus haut antp. Je vais essayer le tool qu'il m'a conseillé et voir ce que ca donne.
En tout cas merci de votre aide à tous
Marsh Posté le 03-11-2005 à 19:05:19
Je précise que mon précédent post permet juste d'avoir une page d'erreur valide et ne permet pas de valider toute la "page".Sinon, il ne te reste plus qu'a faire éxactement ce qu'a dit antp avec le SESSIONID dans l'urL.
Marsh Posté le 03-11-2005 à 17:41:37
J'ai un petit problèmes lors des vérifications aux normes du W3C et de mes includes php.
Quand j'essaie de valider une page .php il vérifie bien sur le xhtml présent dans celle-ci.
Mais étant donné que la quasi totalité de mes pages débutent par une include ou require qui vérifie qu'un $_SESSION['login'] est bien présent, le validateur vérifie la page qui a été include et s'arrête à celle ci sans continuer de vérifier le reste du document.
De plus il y a du texte (en simple echo) dans ces pages include mais pas forcément de tags <html xmls....etc donc le résultat est faussé, et je ne peux pas en rajouter car de toute facon le problème est le meme, je n'arrive pas a vérifier la totalité d'une page a partir du moment ou il y a un require ou include.
Je suis novice en php , donc si quelqu'un a quelque chose pour m'aider sur la facon d'organiser ma page pour qu'elle soit vérifier dans son intégralité, avec les includes...