2009-04-25 8 views
2

Ich habe einige PHP-Code, der dynamische Tabellen von Daten im laufenden Betrieb erzeugt. Durch Klicken auf verschiedene Links "verfeinern" Sie die Datenbanktabellen. Was ich möchte, ist jeder dieser Links, um die aktuellen GET-Informationen zu behalten und hinzuzufügen. IE:PHP Wie behalte ich alle GET Vars in Links?

$allPreviousVars = ???; // Could be 20+ vars 
echo "<a href='".$allPreviousVars."&newVar=2'>Link</a>"; 

ich von Möglichkeiten zu denken, kann es durch $ _GET mit einer Schleife durch Iteration zu tun, aber sicher gibt es einen schnelleren Weg, dies zu tun?

+0

Ich sehe, dass Sie Ihre Eingabevariablen nicht bereinigen. – hbw

+0

"???" ist meine Eingabe Desinfektionsfunktion tatsächlich. : P –

Antwort

8

Wie wäre es mit $ _SERVER ["QUERY_STRING"]?

EDIT: Da Sie so freundlich waren, mir diese Antwort zu geben, sollte ich eine Sache hinzufügen. Sie sollten die obige Variable in htmlspecialchars() einfügen, bevor Sie sie ausgeben. Andernfalls könnte jemand eine URL mit "> darin eingeben, und es würde Ihren Link brechen.

+0

Ich wusste, dass ich so etwas früher gesehen habe. Perfekt danke. –

-1

Ihre beste Wette ist, wie Sie vorgeschlagen haben, den Inhalt von $_GET zu durchlaufen, die URL aus einer Mischung der vorhandenen Abfrageparameter plus Ihre überschriebenen Bits zu konstruieren.

1

Verwenden Sie http_build_query(), wenn Sie eine Abfragezeichenfolge aus einem geänderten Array generieren müssen. Wenn Sie nur möchten, dass der Querystring an die aktuelle Seite gesendet wird, tun Sie wie vorgeschlagen und verwenden Sie $ _SERVER ["QUERY_STRING"].

1

Ich würde dies wahrscheinlich tun:

$query = mySanitizeFunction($_GET); 
$url = http_build_query($query) . '&newVar=2'; 
+0

Das wird Ihre URL brechen, wenn $ _GET leer ist. – pinkgothic

2

ich dies tun, wie folgt:

<?php echo http_build_query(array_merge($_GET, array('foo'=>'bar', 'foo2'=>'bar2')); ?> 

Hinweis, dass jede bestehende 'foo' oder 'foo2' Schlüssel würde ersetzt werden.

+0

Über ein Jahr später und das war genau das, was ich suchte. Vielen Dank! –

Verwandte Themen