Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1541 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problèmes d'includes et de W3C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problèmes d'includes et de W3C

n°1237913
chocolateb​ar
Posté le 03-11-2005 à 17:41:37  profilanswer
 

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...  :sweat:

mood
Publicité
Posté le 03-11-2005 à 17:41:37  profilanswer
 

n°1237923
antp
Super Administrateur
Champion des excuses bidons
Posté le 03-11-2005 à 17:54:50  profilanswer
 

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.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1237932
leflos5
On est ou on est pas :)
Posté le 03-11-2005 à 18:01:38  profilanswer
 

Une fois que tu as compris que le parser voit la même chose que ton visiteur lambda t'as tout compris ;)

n°1237942
chocolateb​ar
Posté le 03-11-2005 à 18:06:12  profilanswer
 

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é.

n°1237945
antp
Super Administrateur
Champion des excuses bidons
Posté le 03-11-2005 à 18:08:45  profilanswer
 

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 :D)
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


Message édité par antp le 03-11-2005 à 18:09:47

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1237947
chocolateb​ar
Posté le 03-11-2005 à 18:09:48  profilanswer
 

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 ^^

n°1237950
antp
Super Administrateur
Champion des excuses bidons
Posté le 03-11-2005 à 18:10:34  profilanswer
 

:heink: la source de quoi ? il va rien chercher dans tes include...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1237953
2xyo
2*yo = yoyo
Posté le 03-11-2005 à 18:13:09  profilanswer
 

Envoies nous l'adresse de ton site.


---------------
2 * yo = yoyo
n°1237960
chocolateb​ar
Posté le 03-11-2005 à 18:17:11  profilanswer
 

vaut peut être mieux pas :p
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  ^^)

n°1237962
antp
Super Administrateur
Champion des excuses bidons
Posté le 03-11-2005 à 18:19:55  profilanswer
 

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 :D
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.


Message édité par antp le 03-11-2005 à 18:21:26

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le 03-11-2005 à 18:19:55  profilanswer
 

n°1237967
chocolateb​ar
Posté le 03-11-2005 à 18:25:09  profilanswer
 

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 :
  1. <?php
  2. include 'auth.php'; //ma bete noire
  3. echo'
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <title>Title</title>
  8. <link href="machin.css" rel="stylesheet" type="text/css" />
  9. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  10. </head>
  11. <body>
  12. ... // => le truc qui se vérifie pas
  13. </body>
  14. </html>';
  15. ?>


 
Ca aurait il rapport avec le fait que je met le html dans un echo ?

n°1237972
2xyo
2*yo = yoyo
Posté le 03-11-2005 à 18:29:01  profilanswer
 

Essaye ça...

Code :
  1. <?php
  2. include auth.php; //ma bete noire
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <title>Title</title>
  8. <link href="machin.css" rel="stylesheet" type="text/css" />
  9. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  10. </head>
  11. <body>
  12. </html>


Montre nous ton auth.php je suis sur qu'il y a pleins de choses intéréssantes dedans :jap: comme par exemple des exit(), echo, etc..


Message édité par 2xyo le 03-11-2005 à 18:31:04

---------------
2 * yo = yoyo
n°1237973
chocolateb​ar
Posté le 03-11-2005 à 18:29:38  profilanswer
 

@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 :p

n°1237975
chocolateb​ar
Posté le 03-11-2005 à 18:30:22  profilanswer
 

@2xyo => jessaie en ce moment meme, je me cogne encore la tete si c'est aussi c*@-

n°1237976
omega2
Posté le 03-11-2005 à 18:30:49  profilanswer
 

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> ?

n°1237978
omega2
Posté le 03-11-2005 à 18:31:54  profilanswer
 

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 ?


Message édité par omega2 le 03-11-2005 à 18:32:40
n°1237979
chocolateb​ar
Posté le 03-11-2005 à 18:33:14  profilanswer
 

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 :D

n°1237980
chocolateb​ar
Posté le 03-11-2005 à 18:34:44  profilanswer
 

mais ca marche pas mieux, y a où commettre un meurtre :(

n°1237982
omega2
Posté le 03-11-2005 à 18:35:46  profilanswer
 

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.


Message édité par omega2 le 03-11-2005 à 18:36:19
n°1237983
2xyo
2*yo = yoyo
Posté le 03-11-2005 à 18:39:13  profilanswer
 

Le code source de ton auth.php nous aidera certainement à y voir plus clair.


---------------
2 * yo = yoyo
n°1237987
chocolateb​ar
Posté le 03-11-2005 à 18:42:25  profilanswer
 

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 :
  1. <?php
  2. //Protection auth si aucune session n'a été ouverte pour l'utilisateur
  3. if (!isset($_SESSION['user']))
  4. {
  5. echo 'erreur...blabla!';
  6. exit;
  7. }
  8. ?>



Message édité par chocolatebar le 03-11-2005 à 18:42:42
n°1237989
2xyo
2*yo = yoyo
Posté le 03-11-2005 à 18:45:51  profilanswer
 

:o
 
Le validateur arrivera toujours sans session, DONC il verra uniquement le 'erreur...blabla!' et c'est tout comme il y a le exit() ensuite...


---------------
2 * yo = yoyo
n°1237992
chocolateb​ar
Posté le 03-11-2005 à 18:48:38  profilanswer
 

qu'est ce que tu me précognises pour éviter ca ?

n°1237998
2xyo
2*yo = yoyo
Posté le 03-11-2005 à 18:53:43  profilanswer
 

Je te préconise de simplement dépalcer le auth.php

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Title</title>
  5. <link href="machin.css" rel="stylesheet" type="text/css" />
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7. </head>
  8. <body>
  9. <?php 
  10. include auth.php; //ma bete noire  
  11. ?>
  12. </body>
  13. </html>


et dans le auth.php

Code :
  1. <?php
  2. //Protection auth si aucune session n'a été ouverte pour l'utilisateur  
  3. if (!isset($_SESSION['user']))
  4. {
  5. echo "         <p>erreur...blabla!</p>"
  6.         ."     </body>"
  7.         ."</html>";
  8. exit;
  9. }
  10. ?>


Message édité par 2xyo le 03-11-2005 à 18:54:37

---------------
2 * yo = yoyo
n°1238006
chocolateb​ar
Posté le 03-11-2005 à 19:02:54  profilanswer
 

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 :)


Message édité par chocolatebar le 03-11-2005 à 19:03:23
n°1238010
2xyo
2*yo = yoyo
Posté le 03-11-2005 à 19:05:19  profilanswer
 

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.


---------------
2 * yo = yoyo
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problèmes d'includes et de W3C

 

Sujets relatifs
Problèmes entres sessions et affichage en pseudo framesHTML Validator : Aide pour résoudre certains problèmes ?
Problèmes avec substring-beforeProblèmes d'affichages sous Firefox et Netscape mais pas sur IE
[Tableaux] problèmes d'espacement entre cellulesconcatenation problemes
Recherche Spécifications W3C pour imprimerbalise HR dans les recommandations W3C ?
2 problemes: décalage et floateurProblemes d'affichage meta name.
Plus de sujets relatifs à : Problèmes d'includes et de W3C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR