Comment récupérer une variable GET en javascript après un URL rewriting

Messages postés
28
Date d'inscription
dimanche 25 mai 2003
Statut
Membre
Dernière intervention
29 août 2008
- - Dernière réponse : ludwig666z
Messages postés
1
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
19 février 2009
- 19 févr. 2009 à 16:20
Bonsoir, cela fait plusieurs heures que je recherche une solution à mon problème.

Ce que je cherche à faire : Récupérer une variable GET en javascript après un URL Rewriting via htaccess.

Dans mon fichier htacces j'ai :
RewriteRule ^(.*),(.*)\.html$ /$1\.php?toto=$2 [QSA,L]

Dans mon fichier javascript j'ai ça :
var tmp = unescape(window.location.search.substring(1).split("&"));
     var $_GET = [];
     for (var i in tmp)
     if (tmp[i].indexOf("=")>0)
         $_GET[decodeURI(tmp[i].substring(0, tmp[i].indexOf("=")))] = decodeURI(tmp[i].substring(tmp[i].indexOf("=")+1));
     else
         $_GET[decodeURI(tmp[i])]='';
    alert("toto="+$_GET["toto"]);

Quand je lance l'adresse "index.php?toto=test" le javascript me popup "toto=test" donc le javascript marche, logique.

Mais quand je lance l'adresse "index,test.html", l'url rewriting joue son rôle et affiche ma page mais le javascript me popup "toto=", donc là ça ne marche plus.
La variable tmp est vide et window.location.href ="index,test.html". (Je précise qu'en php $_GET["toto"] me retourne bien ce qu'il faut)

Voilà mon problème. Est-ce moi qui me suis planté dans l'url rewriting ou est-ce une limitation ? Ou peut-être faudrait-il utiliser autre chose que window.location.search pour avoir la vraie adresse.

Je remercie d'avance celui qui m'aidera car il me rendra un énorme service.
Afficher la suite 

3 réponses

Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
27
0
Merci
bonjour,

>>en php $_GET["toto"] me retourne bien ce qu'il faut
t'es sûr de ton javascript alors ?
alert(window.location.search); ça donne quoi ?
si c'est une erreur javascript ( pas contrôlé ! ),
regarde ici par exemple ( Manipuler les paramètres passés dans l'URL )

Cordialement     Bul   [mon Site] [M'écrire], <!--
Commenter la réponse de cs_bultez
Messages postés
28
Date d'inscription
dimanche 25 mai 2003
Statut
Membre
Dernière intervention
29 août 2008
0
Merci
alert(window.location.search); donne un popup vide comme ma variable tmp dans mon code.
Pour le code donné dans le lien, idem window.location.search est vide donc il redirige sur "index.php?toto=test"(code écris en brut) donc après window.location.search n'est plus vide et le javascript arrive a récupérer ma variable toto MAIS l'adresse a changée donc on perd un peu l'intérêt de l'url rewriting.

Ce que je n'arrive pas à comprendre c'est pourquoi en PHP on y arrive et pas en javascript. Peut-être existe-t-il une autre varaible que window.location.search ou window.location.href.
Commenter la réponse de abhoryo
Messages postés
1
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
19 février 2009
0
Merci
Petit rappel:
Javascript -> côté client
Php -> côté serveur
Donc javascript n'a pas accès aux variables rewritées (oui j'invente des mots) mais uniquement à l'url qui s'affiche dans le navigateur.
Commenter la réponse de ludwig666z