Soucis pour l'url

Eléphanteau du PHP | 17 Messages

10 août 2009, 16:12

Bonjour

Bon alors j'ai pour le moment décidé de laissé tombé l'URL rewritting pour essayer de changer l'URL a coup de window.location. J'y arrive presque mais évidement comme tout code ses problèmes. En fait mon problème c'est que je n'arrive pas a faire la différences entre lorsqu'un client change de catalogue ou rentre directement le client dans l'url.

Présentation du code.
//Je recupère le lien
var Chaine = String(window.location);


var test = 0;
//Fonction qui me coup mon URL pour récupérer les variables
function PrmUrl()
{
var prm = new Array();
var tmp =
unescape(window.location.search).substr(1).split("
&");
var inter;
for ( i=0; i<tmp.length; i++)
{
inter=tmp[i].indexOf("=");
if ( inter>=0 )
{

prm[tmp[i].substr(0,inter)]=tmp[i].substr(inter+1)

}
else {
prm[tmp[i]]="";
}
}
return prm;
}

Si il y a bien une URL
if ( window.location.search )
{
var $_GET=PrmUrl();
var tmp= "-----------------------\r\n"+
"exemple par leur noms :\r\n"+
"-----------------------\r\n"+
"\tp1 = "+$_GET["Client"]+"\r\n"+
"\tp2 = "+$_GET["id"]+"\r\n"+
"------\r\n"+
"tous :\r\n"+
"------\r\n";
for ( var n in $_GET )
{
tmp+="\t"+n+" = "+$_GET[n]+"\r\n";
}
Je passe ma variable Test à 1 pour éviter la boucle infinie voir plus bas

test = 1;
//alert ("client = " + $_GET["Client"]);

//Si je change de catalogue je vérifie que mon titre catalogue est le meme que celui que j'avais récupéré sinon je met mon test a 0 et c'est là ou est le soucis car je ne peux pas faire le même if si mon $_Get["Client"] à changer mais parceque le client à tapé dans l'URL

if( document.getElementById("title").value != $_GET["Client"]){
test = 0;
}
}

//Si test =0
if (test == 0)
{
//Ici je vais découpé tout mon code pour juste avoir http://www.monsite/go.php et pouvoir rajouté par la suite mes variables.


var sous_chaine = "?Client=";
var Resultat = Chaine.indexOf(sous_chaine);
var Resultat2 = Chaine.substring(0,Resultat);

test = 0;
//window.location.href= Resultat2 + "?Client=" + document.getElementById("title").value;
window.location.href= Resultat2 + "?Client=" + document.getElementById("title").value + "&id=" + document.getElementById("MediaID").value;
} 
Merci

ViPHP
ViPHP | 3607 Messages

10 août 2009, 22:20

Bonsoir,
je n'ai peut-être pas tout suivi... Mais quelques questions:
Pourquoi veux-tu changer tes urls ? (de quoi vers quoi et pourquoi)
Pourquoi abandonner l'url rewriting?
Pourquoi ne pas réduire les frais et gérer celà en php (à coup de header('Location:...')) ?

Parceque là essayer de gérer ça en js, c'est vraiment pas le langage adapté... :?
Et puis j'ai l'impression que tu mélanges un peu les choses... que viennent faire ces $_GET au milieu de ton code Js?

Eléphant du PHP | 245 Messages

11 août 2009, 10:28

pour récupérer l'url en JS:
/**
* Fonction de récupération des paramètres GET de la page
* @return Array Tableau associatif contenant les paramètres GET
*/
function extractUrlParams(){
var t = location.search.substring(1).split('&');
var f = [];
for (var i=0; i<t.length; i++){
var x = t[ i ].split('=');
f[x[0]]=x[1];
}
return f;
}
Après il faut créer des fonctions pour analyser le tableau et rediriger au bon endroit.

Mais là, franchement...
1) c'est vachement plus compliqué que l'URL rewriting à mon avis
2) cela utilise des ressources cotés client et c'est vachement plus couteux
3) tu risques de t'embrouiller et de rediriger une page qui redirige sur une autre, voir sur la première
Bref, c'est une bonne idée pour faire planter ton site.

Si tu veux changer la forme de tes URL : c'est l'URL rewriting qu'il te faut, pas autre chose.

Eléphanteau du PHP | 17 Messages

11 août 2009, 10:46

Bonjour

Et merci de vos réponses ^^

Le problème de L'URL REWRITING c'est qu'il faut déjà qu'une url existe, et c'est là ou est tout le soucis....Le mec à codé son site en full AJAX c'est à dire que de un les pages ne sont pas rechargé et de deux, et bien on a toujours le même URL => monsite.fr/go.php peux importe ou on clique et se dirige donc je pense ne pas trop avoir le choix....Malheureusement

ViPHP
ViPHP | 3607 Messages

11 août 2009, 10:59

tu aurais éventuellement l'url du site si il est en ligne? pour essayer de mieux appréhender les tenants et aboutissants ;)

Eléphanteau du PHP | 17 Messages

12 août 2009, 15:44

Bonjour oui le site est en ligne mais encore en construction, je ne peux malheureusement vous donner le lien sur lequel je travail mais je peux vous donner celui qui est en ligne, ba oui je bosse d'abord sur une sauvegarde ^^

Airparis.fr => Mais il y a pleins de choses qui ont changé.

Bon pour l'URL je crois que c'est bon je vais mettre que le client dans l'URL comme ça sa irra bien pour le bouton SHARE que j'ai fait ^^