Probleme de passage de variables dans l'url

perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006 - 11 déc. 2003 à 19:20
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006 - 12 déc. 2003 à 21:59
Bonjours

Je cherche a rendre autonomes les différents scripts php de mon site et le problème est le suivant :


Chaque script a des variables a faire passer à d’autres pages.

J’utilise alors des adressages du type index.php?var1=val1&var2=val2.

Pour générer les adressages futurs dans mes pages je fais par exemple :
Print “”; :)

Mais si je fais ça je perde les autres variables qui sont déjà présentent dans l’adresse actuelle du site
l’adressage actuel étant par exemple : index.php?vara=5&varb=2

Donc l’une des solutions est de faire
Print “”;

J’obtiens bien, dans ce cas mon adresse sous la forme index.php ?vara=5$varb=2&var1=3&var2=5 :)

Sauf que : :sad)
Si je relance 2 fois de suite la même page je me retrouve avec une adresse a rallonge
Du style : index.php?vara=3&varb=5&var1=5&var2=5&var1=8&var2=6 :sad)

Savez vous comment je peux me débrouiller pour avoir qu’une fois les var1 et var2 ?

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)

5 réponses

Tomcube Messages postés 311 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 14 septembre 2004 1
11 déc. 2003 à 19:30
Je te propose de tester si ces variables existent avant de les mettre dans ton lien :

echo "";

Life is a game, Enjoy ! ^^
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
11 déc. 2003 à 20:00
Heu il manque pas un echo dans ton script (dans le if)?

Et si j’ai bien compris ta solution , tu propose de tester la présence de mes variables dans l’adressage : si elles existent pas je les rajoute mais si elles existent déjà, vont elles se mettrent automatiquement a jours ?

Car la variable $QUERY_STRING permet de récupérer (enfin d’après ce que j’ai pu lire) ce qui a été passé en adresse mais si je modifie la valeur de $var1 il va pas le prendre en compte, il va reprendre la valeur précédante non?

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
11 déc. 2003 à 22:07
Alors ne me demande pas trop comment, mais je risque d'avoir le même problème et je serais toi, j'utiliserais plutôt les sessions pour stocker les variables, une fois que les premières soient initialisées.
LocalStone :big)
0
Tomcube Messages postés 311 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 14 septembre 2004 1
11 déc. 2003 à 23:23
Désolé pour le echo, j'shui allé un peu vite !
Ah, tu veux qu'elles se mettent à jour, ... ce sera un peu dur ! Mais pourquoi passes-tu autant de variable par l'url, comme le dit local stone, tu pourrais plutôt les stocker en session ...

Sinon, une autre solution :

$query_str = "";
foreach($_GET as $k => $v)
{
if strlen($query_str>0)
$query_str .= "&";
if ($v != $$k)
$query_str .= "$k=".$$k;
else
$query_str .= "$k=$v";
}
echo "";

est-ce que ça marche ?? :question)

---------------------------------------

Life is a game, Enjoy ! ^^
0

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

Posez votre question
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
12 déc. 2003 à 21:59
J'ai testé ton code !!!
J'ai du le retoucher légèrement
voila donc ce que j'ai tapé :
<?php
$str="";
foreach($_GET as $k=>$v)
{
if(strlen($str)>0) $str.="&";
if($v !=$$k)
$str.="$k=".$$k;
else
$str.="$k=$v";
}
$a=16;
echo "ici";
?>
En tous les cas, il me sort pas la dernière valeur de $a (16) mais dans l'url il y a :
essai.php3?a=5&b=6
Donc ça marche pas
Mais laisse tomber je vais passer sous les sessions (je voulais pas mais …)

En revanche, j'ai pas compris ce que tu fais quand tu as :

$k=>$v

et

if($v !=$$k)
$str.="$k=".$$k;
else
$str.="$k=$v";

merci tout de meme a vous 2 pour l'aide ;)

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
Rejoignez-nous