Varibales du get et w3c

Résolu/Fermé
Taboujr Messages postés 507 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 2 janvier 2008 - 2 janv. 2004 à 10:57
 tajy34 Montpellier HSC - 3 sept. 2009 à 16:05
Bonjour !

J'ai un petit souci avec la validation du w3c.
En effet, dès que je met plusieurs variables dans le get, avec un lien du type href="?var1=var&var2=var", le validator me renvoie une floppée d'erreurs :
1. cannot generate system identifier for general entity "var2"
2. general entity "var2" not defined and no default entity
3. reference to entity "var2" for which no system identifier could be generated
4. entity was defined here

Comme j'aimerais bien garder la validation du w3c sur mon site, j'aimerais savoir si vous savez ce que signifie exactement cette erreur et si il y a des moyens de s'en affranchir.

J'ai personnellement pensé à transmettre toutes les varibles dans une seule puis à parser cette variable pour tout récupérer dans la page cible, mais je suis pour l'instant un peu embêtée à cause du codage qui me met des % partout.

Voilà voilà. Merci pas avances des réponses et idées que vous m'apporterez :)

.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
A voir également:

11 réponses

grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
2 janv. 2004 à 11:08
Salut,

Tu peux passer par la méthode POST plutot que GET et récupérer tes valeurs dans $_POST
Tu peux aussi travailler avec les sessions, tout dépend de ce que tu veux faire.

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Taboujr Messages postés 507 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 2 janvier 2008 117
2 janv. 2004 à 11:15
Pour passer par la méthode post, le seul moyen que je connaisse est de faire un formulaire, et ça risque d'être saoulant à la longue de faire un formulaire pour chaque lien.

En fait, ce que je veux faire, c'est juste un site qui respecte les normes du w3c.
En gros, pour la structure, y'a différentes pages qui sont appelées dans l'index via une variable $page. Chaque page est un module (script php) qui peut éventuellement avoir besoin de transmettre des variables (genre des identifiants, des trucs comme ça).

Je vais me renseigner sur les sessions. Merci :)

.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
2 janv. 2004 à 11:17
Je pense alors que les sessions sont toutes indiquées.

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Taboujr Messages postés 507 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 2 janvier 2008 117
2 janv. 2004 à 11:38
Y'a quand même un truc qui me chagrine avec les sessions, c'est que c'est loin d'être simple à mettre en place.
Et je n'ai pas besoin de cacher mes variables, ce ne sont que des variables de navigation, rien de bien secret ;)

Je vais voir si je trouve des délimiteurs qui passent dans le get pour transmettre toutes mes variables dans une seule variable du get.

Je garde l'idée des sessions sous le coude quand même.

Merci bien :)

.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
2 janv. 2004 à 11:43
Ca peut paraitre compliqué de prime abord, mais pour les avoir deja utilisées, c'est relativement simple et efficace.

Tu commences chaque page avec un session_start(); (ou encore mieux, dans un script genre page_header.php)

Et tu utilises l'array $_SESSION pour sauver et récupérer tes valeurs.

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Taboujr Messages postés 507 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 2 janvier 2008 117
2 janv. 2004 à 11:54
Je sais me servir des sessions et je sais que ce n'est pas si compliqué que ça en a l'air, mais je ne vois pas du tout comment l'appliquer à mon problème sans passer pour chaque lien par une page intermédiaire d'écriture des variables de session et de redirection, page à laquelle je devrais transmettre plusieurs variables, ce qui va déclencher des alertes lors de la validation du w3c... C'est le chat qui se mord la queue !

.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
2 janv. 2004 à 12:19
Ouaip, je capte à présent...

Tu pourrais faire avec des formulaires, mais comme tu l'as dit, ça risque d'être soulant... Mais commeça, je vois pas d'autre possibilité...
Si tu trouves autre chose, ça m'intéresse ;-)

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Taboujr Messages postés 507 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 2 janvier 2008 117
2 janv. 2004 à 12:23
Ok, je te tiens au courant :)

.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
0
Taboujr Messages postés 507 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 2 janvier 2008 117
2 janv. 2004 à 13:39
Bon alors, voilà ce que j'ai fait en premier jet :
function pget_build_query($array) {
  return urlencode(serialize($array));
}

function pget_parse_query($getline) {
  return unserialize(stripslashes(urldecode($getline)));
}


ma page de test (je n'ai pas copié le code des fonctions) :
define('rn', '<br />'.chr(10));

var_dump($_GET);
print (rn);

if (isset($_GET['var'])) $_GET=pget_parse_query($_GET['var']);

var_dump($_GET);
print (rn);

echo '<a href="?var='.pget_build_query(array('var1'=>'val1','var2'=>'val2','var3'=>'val3')).'">Lien</a>'.rn;


Ce qui donne, à la première ouverture :
array(0) { } 
array(0) { } 
Lien

et après accès via le lien :
array(1) { ["var"]=> string(84) "a:3:{s:4:\"var1\";s:4:\"val1\";s:4:\"var2\";s:4:\"val2\";s:4:\"var3\";s:4:\"val3\";}" } 
array(3) { ["var1"]=> string(4) "val1" ["var2"]=> string(4) "val2" ["var3"]=> string(4) "val3" } 
Lien


Voilà. Je poste ici si je trouve des bugs ou des améliorations...

.:: TaBou JuNioR ::.
J'ai des questions à toutes vos réponses. [W. Allen]
0
tajy34 Montpellier HSC
3 sept. 2009 à 16:03
Salut, je sais que je réponds un peu tard, mais j'avais besoin de valider le W3C aussi, et je suis tombé sur ce forum.

J'ai trouvé la solution sans passer par les $_SESSION ni rien :)

il suffit que tu mettes & sur tes variables get

exemple :

?var=un_truc&var2=un_autre_truc

Voilà, en espérant que ca va aider d'autres personnes :)
0
tajy34 Montpellier HSC
3 sept. 2009 à 16:05
mince ca l'a pas pris en compte le :

&amp;


exemple :

?var1=qqch&amp;var2=qqch
0