Bobby: PHP 5.2.5 $_SERVER['SCRIPT_URI'] fehlt

Moin

Nachdem mein Provider einen neuen Server eingebaut hat und alles neu installiert hat (LAMP-Umgebung) ist nun die Server-Variable $_SERVER['SCRIPT_URI'] nicht mehr verfügbar. Ist dies normal bei PHP 5.2.5? Was kann ich sonst für eine Variable benutzen. Brauche den angefragten URL-Namen (nicht den tatsächlichen wegen ModRewrite) ohne GET-Variablen.

Danke für Eure Hinweise.

Gruß Bobby

--
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  1. Hallo Bobby,

    Nachdem mein Provider einen neuen Server eingebaut hat und alles neu installiert hat (LAMP-Umgebung) ist nun die Server-Variable $_SERVER['SCRIPT_URI'] nicht mehr verfügbar. Ist dies normal bei PHP 5.2.5? Was kann ich sonst für eine Variable benutzen. Brauche den angefragten URL-Namen (nicht den tatsächlichen wegen ModRewrite) ohne GET-Variablen.

    ich zitiere aus dem Handbuchkapitel Vordefinierte Variablen:

    <zitat>
        $_SERVER ist ein Array, in dem Informationen über Header, Pfade oder den
        Speicherort des Skripts gespeichert sind. Die Einträge dieses Arrays werden
        vom Webserver generiert. Es gibt keine Garantie, dass jeder Webserver alle
        diese Einträge erzeugt. Manche Server werden Einträge auslassen oder andere
        einfügen, die hier nicht aufgeführt sind.
        [...]
    </zitat>

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      $_SERVER ist ein Array, in dem Informationen über Header, Pfade oder den
          Speicherort des Skripts gespeichert sind. Die Einträge dieses Arrays werden
          vom Webserver generiert. Es gibt keine Garantie, dass jeder Webserver alle
          diese Einträge erzeugt. Manche Server werden Einträge auslassen oder andere
          einfügen, die hier nicht aufgeführt sind.

      Man kann die fehlenden Variablen aus den Environment-Variablen des Webservers, sofern sie da vorhanden sind, meistens zusätzlich importieren (siehe mod_rewrite). Das geht z.B. in einer .htaccess-Datei, wenn man die passende Berechtigung hat.

      Nützlich ist das z.B. für das Passwort bei .htaccess-Schutz und PHP als CGI. Da fehlt dieses nämlich standardmäßig.

      LG
      Tom

  2. Hi,

    [...] ist nun die Server-Variable $_SERVER['SCRIPT_URI'] nicht mehr verfügbar. [...] Brauche den angefragten URL-Namen (nicht den tatsächlichen wegen ModRewrite) ohne GET-Variablen.

    Im Zweifelsfalle schneide den Querystring-Part doch einfach vom REQUEST_URI ab ...

    Funktionen wie parse_url helfen dir auch gerne dabei.

    MfG ChrisB

  3. echo $begrüßung;

    Was kann ich sonst für eine Variable benutzen. Brauche den angefragten URL-Namen (nicht den tatsächlichen wegen ModRewrite) ohne GET-Variablen.

    Ergänzend zu Vinzenz Antwort: Alles was der Server dir über den Request mitzuteilen gedenkt, steht in $_SERVER. Je nach Art des Requests (z.B. mit mod_rewrite oder ohne) variieren diese auch noch. phpinfo() ist auch eine gute Anlaufstelle, um den Inhalt dieses Arrays angezeigt zu bekommen. Wenn du einen passenden Eintrag gefunden hast, probiere ihn mit diversen Aufrufvarianten aus: Script direkt aufgerufen, mod_rewrite benutzt, Querystring verwendet, ...

    echo "$verabschiedung $name";

    1. Moin

      phpinfo() ist auch eine gute Anlaufstelle, um den Inhalt dieses Arrays angezeigt zu bekommen. Wenn du einen passenden Eintrag gefunden hast, probiere ihn mit diversen Aufrufvarianten aus: Script direkt aufgerufen, mod_rewrite benutzt, Querystring verwendet, ...

      Danke für Eure zahlreichen Antworten. Mit phpinfo() hab ich alle Varianten durchgespielt und verwende nun andere Variablen (redirect_uri bei mod_rewrite und php_self ohne mod_rewrite)

      Danke nochmal

      --
      -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
      -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
      ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)