Axel P.: Search-String der URL abfragen

Liebe SelfHTML-Community!

Ich würde gerne in PHP das machen, was man mit JavaScript durch
  x = window.location.search;
erreicht, nämlich den Search-String der URL ermitteln.

Wie kann ich in PHP4 darauf zugreifen?

Meine Anwendung im Detail:
Ich rufe also ein PHP-Skript durch Absenden eines HTML-Formulars auf und dann steht in der Location-Zeile des Browsers sowas hier:
http://www.meineSeite.de/meinSkript.php?var1=3&var2=7

Das Skript generiert dann eine HTML-Seite, auf der u.a. ein Link auf dasselbe Skript mit denselben Variablen und mit zusätzlichen (!) Variablen aufgerufen werden soll; also ein Link auf folgende URL:
http://www.meineSeite.de/meinSkript.php?var1=3&var2=7&nochEineVar=99

Eine blöde ad-hoc-Lösung wäre: den Search-String im Skript selbst "per hand" zu generieren, aber das Problem dabei liegt auf der Hand: die Anzahl der zu übergebenden Variablen kann sehr groß sein.

Also. Wie geht das?

Tschau,
Axel

  1. Moin

    Ich würde gerne in PHP das machen, was man mit JavaScript durch
      x = window.location.search;
    erreicht, nämlich den Search-String der URL ermitteln.

    Wie kann ich in PHP4 darauf zugreifen?

    Der gesamte Suchstring steht in $_SERVER["QUERY_STRING"]. Den kannst Du dann selber zerlegen.
    Fertig zerlegt ist er (wenn die entsprechende Option in der php.ini gesetzt ist) bereits im Array $argv[] enthalten. (Gerader Index: Variable, ungerader Index: Wert). Die Anzahl der Parameter (also Variablen + Werte) steht in $argc.

    Ciao,

    Harry

    1. danke für den tip, aber das funktioniert bei meinem server leider nicht. doch ich habe durch deine anregung jetzt endlich im php-manual was gefunden: $QUERY_STRING enthält genau die information, die ich brauche!
      axel

  2. Ich würde gerne in PHP das machen, was man mit JavaScript durch
      x = window.location.search;
    erreicht

    Da Du die übergebenen Variablen in $_GET zur Verfügung hast, fiele mir als Grundgerüst folgendes ein:

    foreach($_GET as $key=>$value) {
      $tokens[]=$key.'='.$value;
    }
    $string='?'.implode('&',$tokens);

    1. danke für den tip, aber das funktioniert bei meinem server leider nicht. doch ich habe jetzt im php-manual was gefunden: $QUERY_STRING enthält genau die information, die ich brauche!
      axel

      1. das funktioniert bei meinem server leider nicht

        Besser: noch nicht wegen PHP < 4.1.0, in diesem Fall stehen die entsprechenden Daten in $HTTP_GET_VARS

        doch ich habe jetzt im php-manual was gefunden: $QUERY_STRING

        Ich hätte mir $_SERVER[1] auch eher ein paar Sekunden vor Abschicken meines vorigen postings nochmal anschauen sollen als danach... :->

        [1] Der Inhalt von $QUERY_STRING ist - wie von Harry korrekterweise vorgeschlagen - bei PHP >= 4.1.0 in $_SERVER['QUERY_STRING'] zu finden.