[RESOLU] Mémoire de GET url de retour

Eléphant du PHP | 363 Messages

01 sept. 2014, 14:11

Hello !

Je reviens avec mes histoires de valeurs en GET. P'tit bug repéré (je vois pas encore l'incidence si incidence il y a)

Quand j'écris mon url en récupérant tous les GET ca me donne quelque chose de la sorte :

url.php?pseudo=foetus69&var1=1&var2=2

et comme je veux récupérer les valeurs de get je reconstruis mon lien sauf que ça m'injecte 2 fois la valeur pseudo (la valeur en mémoire et la valeur de la ligne correspondante)

url.php?pseudo=foetus69&var1=1&var2=2&pseudo=pseudodelalignesurvolée

Comment résoudre le souci ? Vous savez ?

Fée
Dis-donc fossoyeur, t'as une dent contre moi ou quoi ?

Eléphant du PHP | 113 Messages

01 sept. 2014, 14:30

En fait si tu veux récupéré tous les GET tu peux utiliser $_SERVER['REQUEST_URI'] et à l'aide de explode tu délimité ta chaîne avec "?" et tu récupère la partie de droite

Eléphant du PHP | 363 Messages

01 sept. 2014, 15:42

Salut toytoy,

Bah ta soluce du foreach ($_GET as $key => $value) marche bien sauf que je vois pas comment gérer l'histoire du pseudo repassé dans les url :?

Comment changer une valeur dans une url ? si mon url est : url.php?var1=5&var2=8&var3=15

Comment demander le changement de var2 à partir du foreach $_GET ou même $_SERVER['REQUEST_URI'] ?

Chez moi ça me fait : var1=5&var2=8&var3=15&var2=nouvellevaleur

Merci de ton aide.
Dis-donc fossoyeur, t'as une dent contre moi ou quoi ?

Mammouth du PHP | 2278 Messages

01 sept. 2014, 16:43

Il existe un simplissime
extract ($_GET);
qui fait un très bon travail.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 113 Messages

01 sept. 2014, 19:39

$url = "http://maPage.php?";

foreach ($_GET as $key => $value) {
   $value; //Tu changes ta valeur ici, ou ton test sur key par exemple si tu recherche la var pseudo ex:
   //if ($key == "pseudo") {
   //   $value = "toto";
   //}
   $url .= "&".$key."=".$value;
}

Mammouth du PHP | 2278 Messages

01 sept. 2014, 20:51

Comlmen procèdes-tu pour "récupérer tous les GET" ?
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 363 Messages

02 sept. 2014, 09:38

Bonjour,

Je récupère comme toytoy a montré :

foreach ($_GET as $key => $value) {
...
}

Vu pour le extract ($_GET); merci sirakawa :)

Ok donc comme mes liens se trouve en bas de page je suis obligé de repasser chaque variable dans une moulinette de réécriture.

C'est bien ça qu'il faut comprendre ?

Fée
Dis-donc fossoyeur, t'as une dent contre moi ou quoi ?

ViPHP
ViPHP | 1996 Messages

02 sept. 2014, 11:03

Il faut en effet ré-écrire les url à la volée. Créé pour cela une petite fonction :
<?php
function creeUrl ($lien = false,$tabLien=false) {
	//lien vide => return false
	if (empty($lien))
		return false;
	
	//pas de $_GET => return $lien
	if (empty($_GET))
		return $lien;
		
	$lien .= "?";
	foreach ($_GET as $id => $value) :
		//ici tu peux mettres des conditions
		//par exemple, tu veux que pseudo ne soit pas "mémorisé" mais réinjecté depuis une valeur à toi
		
		$lien .= $id."=";
		//est ce que le tableau tabLien existe, non vide, que la clef demandée existe et non vide
		//sinon on reprend la "value" mémorisée
		$lien .= (!empty($tabLien) && array_key_exists($id,$tabLien) && !empty($tabLien[$id]) ? $tabLien[$id] : $value;
		$lien .= "&";
	endforeach;
	
	//on retire le dernier "&"
	$lien = substr($lien,0,-1);
	return $lien;
}

//utilisation
$tabAToi = array ("pseudo" => "maman39");


//si ta page appellée est 
//url.php?pseudo=foetus69&var1=1&var2=2
?>
<a href="<?php echo creeUrl("url.php",$tabAToi); ?>" Title="Lien" >Lien</a>
Tu peux aussi testé si la value est vide ou pas,...
Je suis passé par un tableau $tabLien car c'est plus pratique si tu veux utiliser plusieurs variables personnelles. (en clair : $tabAToi = array("pseudo" => "maman25", "var1" => "38") sans oublier que les clefs des deux tableaux $_GET et $tabAToi doivent être identiques.

Ensuite, je ferai un "url rewriting" avec apache pour que cela soit plus "propre" mais essayes déjà cela pour t'entrainer
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr