Problème validation XHTML 1.0 - résolu, merci beaucoup :o)

Problème validation XHTML 1.0 - résolu, merci beaucoup :o) - PHP - Programmation

Marsh Posté le 26-09-2003 à 17:00:10    

Salut,
 
J'ai un site tout en html, mais qui utilisait une iframe. Mais l'iframe sapu, donc j'ai renommé tous mes fichiers en .php, et sur l'index.php, j'ai remplacé l'iframe par un petit script php d'include (avec un if, et la valeur d'une variable qui change selon le lien cliqué).
 
La variable s'appelle rub.
 
Du coup au lieu d'avoir des liens de la forme :

  • <a href="test.htm" target="iframe">


j'ai :

  • <a href="index.php?rub=test">


et dans le script php, j'ai :

Code :
  1. if ($rub=test) {
  2.      include "test.php";
  3. }


 
J'ai donc uploadé tout ca et chez mon hébergeur, ca marche bien.
 
Mon problème : lorsque le validator teste ma page, il se retrouve avec des liens du genre :  

  • <a href="index.php?rub=test&PHPSESSID=8114214c1d98bdc8c511eca9398ac9a4">


et du coup me sort pleins d'erreurs comme : cannot generate system identifier for general entity "PHPSESSID" et ca me fait planter la validation :(
 
Y'a t'il quelque chose à faire, ou est ce que ca vient de mon hébergeur ? sachant que lorsque je vais moi meme sur le site (sur le net, meme pas en local), les liens sont comme dans mon fichier, c'est a dire qu'il n'y a pas de &PHPSESSID en plus... :??:
 
:hello: merci :)


Message édité par moazaaa le 29-09-2003 à 10:50:30

---------------
Ex-fumeur en quête d'identité.
Reply

Marsh Posté le 26-09-2003 à 17:00:10   

Reply

Marsh Posté le 26-09-2003 à 17:06:22    

if ($rub=='test') {
         include "test.php";
  }


 
comme ca c'est mieux déjà ...
 
pour le reste .. soit tu ne passe pas l'id de session en url ... soir tu changes la valeur du separateur d'argument
 
ini_set() est il autorisé chez ton hébérgeur ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 26-09-2003 à 18:00:29    

simogeo a écrit :

if ($rub=='test') {
         include "test.php";
  }


 
comme ca c'est mieux déjà ...
 
pour le reste .. soit tu ne passe pas l'id de session en url ... soir tu changes la valeur du separateur d'argument
 
ini_set() est il autorisé chez ton hébérgeur ?


 
:) pour le == c'est bon je pense, puisque les liens marchent :) j'ai simplement du me planter en réécrivant le script :)
 
Par contre pour l'id de session, je ne vois pas trop, puisque je ne le passe pas moi même (le lien que j'ai mis en exemple est exactement comme ca dans mon script), et même quand je vais sur le site en ligne, ben je ne le voit pas, c'est uniquement le validator qui en voit un, je comprend pas.
 
et pour ini_set()... je connais pas, faudra que je vérifie, mais je sais pas ou :??:. Si je peux l'utiliser, comment je fais et à quoi ca sert steuplait tant qu'on y est :D
 
En plus c'est au boulot, donc j'ai pas accès aux fichiers pour les modifier avant lundi.
 
ps : j'ai oublié de préciser, je suis gros noob en php :D (en html aussi d'ailleurs... :D)
 
Merci


---------------
Ex-fumeur en quête d'identité.
Reply

Marsh Posté le 26-09-2003 à 18:23:06    

moazaaa a écrit :


et pour ini_set()... je connais pas, faudra que je vérifie, mais je sais pas ou :??:. Si je peux l'utiliser, comment je fais et à quoi ca sert steuplait tant qu'on y est :D


Ben essaye d'utiliser ini_set tu verras bien si tu as un message d'erreur.
 
Le but est de remplacer &amp; par & amp; (sans l'espace) pour arg_separator.output


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 26-09-2003 à 18:31:49    

Ok, je regarderais aussi de ce côté lundi :)
 
Merci


---------------
Ex-fumeur en quête d'identité.
Reply

Marsh Posté le 26-09-2003 à 18:59:55    

Pour le PHPSESSID c'est tout simplement parceque tu utilise les sessions et que le validateur XHTML ne gère pas les cookies donc php mets le session_id dans les liens. Seule solution changé le séparateur d'argument, mais cela implique peut etre la réécriture de quelques pages.
 
PS : Si tu n'as que des erreurs de ce genre, tes pages sont valide si les visiteurs acceptent les cookies


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 26-09-2003 à 20:26:21    

Ok, je comprends (un peu :D) mais je gère pas de session (ou alors à l'insu de mon plein grès... :D). Est-ce que ca peut venir de l'hébergeur ?
 
Par contre, ce que tu me dis, c'est ca qui fait que je vois pas de PHPSESSID dans les liens lorsque je visite le site ?
 
 :pt1cable:  
 
Merci
 
En tout cas je vais regarder ce changement du séparateur d'argument dès lundi :)


---------------
Ex-fumeur en quête d'identité.
Reply

Marsh Posté le 26-09-2003 à 20:33:42    

moazaaa a écrit :

Ok, je comprends (un peu :D) mais je gère pas de session (ou alors à l'insu de mon plein grès... :D). Est-ce que ca peut venir de l'hébergeur ?


oui, les sessions doivent être configurées en autostart dans ton php.ini
 
si tu n'a jamais plus d'une variable passée en parametres dans l'url et que la fonction ini_set() est autorisée alors tu peux supprimer l'autostart
 
ini_set('session.auto_start', 0);
 
 
 

moazaaa a écrit :


Par contre, ce que tu me dis, c'est ca qui fait que je vois pas de PHPSESSID dans les liens lorsque je visite le site ?


oui, car ton navigateur autorie les cookies ... le PHPSESSID est donc stocké dans un cookie sur ta machine.
Le validateur (qui n'autorise pas les cookies) oblige le serveur a le transmettre dans l'url  [:spamafote]  
wala


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 26-09-2003 à 21:26:48    

simogeo a écrit :


oui, les sessions doivent être configurées en autostart dans ton php.ini
 
si tu n'a jamais plus d'une variable passée en parametres dans l'url et que la fonction ini_set() est autorisée alors tu peux supprimer l'autostart
 
ini_set('session.auto_start', 0);
 
 
 
 
oui, car ton navigateur autorie les cookies ... le PHPSESSID est donc stocké dans un cookie sur ta machine.
Le validateur (qui n'autorise pas les cookies) oblige le serveur a le transmettre dans l'url  [:spamafote]  
wala


 
Ok, merci beaucoup, je comprends mieux maintenant :)
 
Je teste dès que possible et je vous tiens au courant :hello:


Message édité par moazaaa le 26-09-2003 à 21:27:13

---------------
Ex-fumeur en quête d'identité.
Reply

Marsh Posté le 29-09-2003 à 10:45:47    

simogeo a écrit :


oui, les sessions doivent être configurées en autostart dans ton php.ini
 
si tu n'a jamais plus d'une variable passée en parametres dans l'url et que la fonction ini_set() est autorisée alors tu peux supprimer l'autostart
 
ini_set('session.auto_start', 0);
 
 
 
 
oui, car ton navigateur autorie les cookies ... le PHPSESSID est donc stocké dans un cookie sur ta machine.
Le validateur (qui n'autorise pas les cookies) oblige le serveur a le transmettre dans l'url  [:spamafote]  
wala


 
Ca a marché :)
 
Bon, en fait j'ai réussi en changeant le 'arg_separator.output', je comprends pas pourquoi, mais en désactivant le session.autostart ça marchait pas, mais par contre, en faisant juste une page avec :
 

Code :
  1. <?php
  2. ini_set('session.auto_start', 0);
  3. phpinfo();
  4. ?>


 
Il me mettait bien l'autostart sur off, donc c'était accepté au niveau de l'hébergeur, mais le validateur se plantait quand meme :??:
 
Bon enfin, pas grave, ca marche avec le & amp :)
 
Merci beaucoup tout le monde, ca fait plaisir de voir des progueux qui vous envoient pas chier en se moquant de vous à la première occasion (paske j'ai déja pris quelques baffes sympa ailleurs :D)
 
Je reviendrais :D
 
Merci, :hello:


---------------
Ex-fumeur en quête d'identité.
Reply

Marsh Posté le 29-09-2003 à 10:45:47   

Reply

Marsh Posté le 29-09-2003 à 11:02:19    

moazaaa a écrit :


Bon, en fait j'ai réussi en changeant le 'arg_separator.output', je comprends pas pourquoi, mais en désactivant le session.autostart ça marchait pas, mais par contre, en faisant juste une page avec :
 

Code :
  1. <?php
  2. ini_set('session.auto_start', 0);
  3. phpinfo();
  4. ?>


 
Il me mettait bien l'autostart sur off, donc c'était accepté au niveau de l'hébergeur, mais le validateur se plantait quand meme :??:


c'est normal .....
la premiere variable est separée par un '?' ... si  il y en a plus il faut absolument changer l'arg_separator.output
 
 :hello:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 29-09-2003 à 12:22:58    

simogeo a écrit :


c'est normal .....
la premiere variable est separée par un '?' ... si  il y en a plus il faut absolument changer l'arg_separator.output
 
 :hello:  


 
Ben oué, j'ai bien compris, mais je pensais comme tu le disais qu'en désactivant le session.auto_start ca marcherait, puisque je n'ai pas d'autres argument (en plus de mon rub) que le PHPSESSID, et donc en virant l'auto.start, je ne devrai plus avoir ce PHPSESSID et donc plus de problème non plus puisque un seul argument.
 
Mais finalement c'est mieux comme ca, si j'ai besoin de rajouter des arguments plus tard, je serais plus embêté :).
 
Merci :hello:


---------------
Ex-fumeur en quête d'identité.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed