Severin Kacianka: Probleme mit GET-Parametern

Hallo,

Ich verwende bei einem CMS sehr oft GET-Parameter, und hatte damit noch nie Probleme. Jetzt habe ich das ganze auf einem Server, bei dem es zu folgendem Problem kommt:
Bei Benutzern mit älteren Browsern (IE < 6) wird das Fragezeichen (?) zu %3f gewandelt.
Beispiel:
index.php?zeigen=5 wird zu index.php%3fzeigen=5

Es scheint ein Zusammenhang zur Option "url immer als utf-8 senden" zu bestehen.

Hat jemand eine Idee an welchen Rädchen des (Apache-)Servers oder PHPs man drehen kann um diesen Fehler zu vermeiden?

Danke für eure Zeit und liebe Grüße,
Severin

--
They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
-- Benjamin Franklin
  1. hi,

    Bei Benutzern mit älteren Browsern (IE < 6) wird das Fragezeichen (?) zu %3f gewandelt.

    Ich nutze den IE 5.01 gezwungener Maßen recht viel - aber das habe ich noch nie beobachten können.

    Wobei tritt das Problem denn auf - beim Verfolgen eines Links mit ordentlich koidertem href innerhalb eines Dokumentes, oder wenn der Benutzer die Adresse mit GET-Parametern manuell in die Adresszeile eintippt?

    Es scheint ein Zusammenhang zur Option "url immer als utf-8 senden" zu bestehen.

    Die ist natürlich aktiviert.

    Hat jemand eine Idee an welchen Rädchen des (Apache-)Servers oder PHPs man drehen kann um diesen Fehler zu vermeiden?

    Da dürfte es nicht mehr viel zu drehen geben.
    Wenn die Anfrage nach /index.php%3fzeigen=5 reinkommt, dann dürfte natürlich nach einer Datei mit dem Namen "index.php?zeigen=5" gesucht werden.

    Da könnte vermutlich höchstens noch mod_rewrite helfen, das solche Krüppel-Requests vorher abfängt und korrigiert.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo,

      Ich nutze den IE 5.01 gezwungener Maßen recht viel - aber das habe ich noch nie beobachten können.

      ich habe davon auch noch nie gehört :(

      Wobei tritt das Problem denn auf - beim Verfolgen eines Links mit ordentlich koidertem href innerhalb eines Dokumentes, oder wenn der Benutzer die Adresse mit GET-Parametern manuell in die Adresszeile eintippt?

      Laut Kundem wenn der Benutzer einen solchen Link anklickt.

      Da dürfte es nicht mehr viel zu drehen geben.
      Wenn die Anfrage nach /index.php%3fzeigen=5 reinkommt, dann dürfte natürlich nach einer Datei mit dem Namen "index.php?zeigen=5" gesucht werden.

      Der Meinung bin ich auch. Ich wüsste aber nicht warum Apache dies nicht tut sollte.

      Kannst du mir sagen, ob bei deinem IE 5 bei folgendem Link der GET-Request funktioniert:
      http://www.tanzenberg.at/~skacia04/foo.php

      Danke für die Antwort und liebe Grüße,
      Severin

      --
      They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
      -- Benjamin Franklin
      1. Hallo Severin,

        Wenn die Anfrage nach /index.php%3fzeigen=5 reinkommt, dann dürfte natürlich nach einer Datei mit dem Namen "index.php?zeigen=5" gesucht werden.
        Der Meinung bin ich auch. Ich wüsste aber nicht warum Apache dies nicht tut sollte.

        Das *wird* er tun. Und zwar erfolglos.

        Kannst du mir sagen, ob bei deinem IE 5 bei folgendem Link der GET-Request funktioniert:
        http://www.tanzenberg.at/~skacia04/foo.php

        Kleiner Scherzkeks. ;-)
        Wolltest du vielleicht noch ein paar GET-Parameter anhängen? So hat mein IE5.5 selbstverständlich keine Probleme, und deine print_r()-Anweisung weist ein leeres $_GET[] aus.

        So long,
         Martin

        --
        Realität ist eine Illusion, die durch Unterversorgung des Körpers mit Alkohol entstehen kann.
        1. Hallo,

          Kleiner Scherzkeks. ;-)
          Wolltest du vielleicht noch ein paar GET-Parameter anhängen? So hat mein IE5.5 selbstverständlich keine Probleme, und deine print_r()-Anweisung weist ein leeres $_GET[] aus.

          Da ist auch ein Link dabei ("weiter"), der hängt GET-Parameiter an. Ich wollte es so realitätsnah wie möglich halten.

          Gruß,
          Severin

          --
          They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
          -- Benjamin Franklin
          1. Hi,

            Da ist auch ein Link dabei ("weiter"), der hängt GET-Parameiter an. Ich wollte es so realitätsnah wie möglich halten.

            sorry, so weit habe ich wiederum nicht gedacht. :-(

            Danach steht bei mir in der Adresszeile:
             http://www.tanzenberg.at/~skacia04/foo.php?foo=1
            und folgendes wird ausgegeben:

            Array
            (
                [foo] => 1
            )

            Das sieht eigentlich völlig normal und korrekt aus, so wie ich es erwarten würde.

            Schönen Abend noch,
             Martin

            --
            Lache, und die Welt wird mit dir lachen.
            Schnarche, und du schläfst allein.
            1. Hallo,

              Das sieht eigentlich völlig normal und korrekt aus, so wie ich es erwarten würde.

              Ist es auch...
              Kannst du einmal versuchen dich auf http://www.tanzenberg.at oben rechts mit dem User 8b und Passwort b8 einzuloggen und zu schaun ob die Links gehen?

              Danke für deine Zeit und liebe Grüße,
              Severin

              --
              They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
              -- Benjamin Franklin
              1. Hallo,

                Nimm besser http://www.tanzenberg.at/MODULES/aktenschrank/admin.php zum einloggen. Dieser Link führt direkt zu meinem Modul.

                Gruß,
                Severin

                --
                They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
                -- Benjamin Franklin
                1. Hi,

                  Nimm besser http://www.tanzenberg.at/MODULES/aktenschrank/admin.php zum einloggen. Dieser Link führt direkt zu meinem Modul.

                  auch gut - aber sowohl über dieses Login-Formular als auch über das vorher angegebene: Die Links sind bei mir alle bedienbar und aufrufbar (abgesehen von ein paar href="javascript:..." in der Hauptnavi, weil ich kein JS zulasse).
                  Browserversion, wie schon erwähnt: IE5.5/SP2, genauer: Build 5.50.4807.2300 in der englischen Fassung.

                  Hope that helps,
                   Martin

                  --
                  Computer lösen für uns Probleme, die wir ohne sie gar nicht hätten.
                  1. Hallo,

                    einen hab ich noch:

                    Browserversion, wie schon erwähnt: IE5.5/SP2, genauer: Build 5.50.4807.2300 in der englischen Fassung.

                    Vielleicht möchte wahsaga mit einem 5.01er hier auch noch mal zum Testen vorbeikommen. In der Version 5.5 sind sehr viele Bugs der Vorgänger endlich korrigiert worden; ich wage sogar zu behaupten, dass die 5.5 die IE-Version mit den wenigsten Bugs ist, denn beim 6er sind ja wieder einige neue dazugekommen.

                    Ciao,
                     Martin

                    --
                    Der Bäcker schlägt die Fliegen tot
                    Und macht daraus Rosinenbrot.
                    1. hi,

                      Vielleicht möchte wahsaga mit einem 5.01er hier auch noch mal zum Testen vorbeikommen.

                      Ich habe es unter XP mit einem "falschen" IE 5.01 probiert - und da konnt ich mich nicht mal einloggen, landete immer nur wieder auf der gleichen Seite.

                      Wenn die Login-Daten morgen noch gültig sind, kann ich noch mal mit einem "nativen" IE 5.01 unter Win NT schauen.

                      gruß,
                      wahsaga

                      --
                      /voodoo.css:
                      #GeorgeWBush { position:absolute; bottom:-6ft; }
                      1. Hallo,

                        Ich habe es unter XP mit einem "falschen" IE 5.01 probiert - und da konnt ich mich nicht mal einloggen, landete immer nur wieder auf der gleichen Seite.

                        wird ja immer schöner.... Hat der Link in der foo.php bei dir funktioniert?

                        Welche Windowsversion würde ich denn brauchen um die alten IEs zu testen?(Welcher IE ist bei W2k dabei?)

                        Danke für deine Zeit und leibe Grüße,
                        Severin

                        --
                        They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
                        -- Benjamin Franklin
                        1. Hallo,

                          Ich habe jetzt W2k installiert und konnte mit beiliegendem IE 5 den Fehler auch nicht reproduzieren.... Tja wird noch eine tolle Woche.

                          Gruß,
                          Severin

                          --
                          They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
                          -- Benjamin Franklin
                        2. hi,

                          Ich habe es unter XP mit einem "falschen" IE 5.01 probiert - und da konnt ich mich nicht mal einloggen, landete immer nur wieder auf der gleichen Seite.

                          Mit dem nativen IE 5.01 unter Win NT klappte es.

                          Hat der Link in der foo.php bei dir funktioniert?

                          Ja, funktioniert auch.

                          gruß,
                          wahsaga

                          --
                          /voodoo.css:
                          #GeorgeWBush { position:absolute; bottom:-6ft; }
                  2. Hallo,

                    auch gut - aber sowohl über dieses Login-Formular als auch über das vorher angegebene: Die Links sind bei mir alle bedienbar und aufrufbar (abgesehen von ein paar href="javascript:..." in der Hauptnavi, weil ich kein JS zulasse).

                    Danke. Ich kann mir einfach nicht erklären wie es dazu kommen kann. Ich werde wohl mal die Benutzer mit dem Fehler um genauere Informationen bitten.
                    Für die href="javascript:..." kann ich übigens nichts, die waren schon da und niemand wollte es ändern...

                    Gruß,
                    Severin

                    --
                    They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
                    -- Benjamin Franklin
  2. Hallo,

    Beispiel:
    index.php?zeigen=5 wird zu index.php%3fzeigen=5

    Was vielleicht noch interessant ist ist, dass der Server sagt, er kann die Datei "index.php%3fzeigen=5" nicht finden. Also irgendwie wird das %3f nicht als Trennzeichen(kette) akzeptiert und sieht alles als Dateinamen an.

    Gott ich hasse es Fehler zu suchen, die ich mangels passenden Browser nicht reproduzieren kann :(

    Gruß,
    Severin

    --
    They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
    -- Benjamin Franklin
    1. Hallo Severin,

      Was vielleicht noch interessant ist ist, dass der Server sagt, er kann die Datei "index.php%3fzeigen=5" nicht finden. Also irgendwie wird das %3f nicht als Trennzeichen(kette) akzeptiert und sieht alles als Dateinamen an.

      das hatte ich mit meiner Formulierung

      Das wird er tun. Und zwar erfolglos

      schon andeuten wollen. Anscheinend hast du den Wink nicht ganz so verstanden, wie ich ihn meinte. ;-)

      Gott ich hasse es Fehler zu suchen, die ich mangels passenden Browser nicht reproduzieren kann :(

      Das kann ich nachfühlen.
      Noch schlimmer finde ich Fehler, die plötzlich nicht mehr auftreten, ohne dass ich weiß warum und woher sie vorher kamen. Gibt so ein blödes Gefühl der Unsicherheit...

      So long,
       Martin

      --
      F: Was ist schlimmer: Alzheimer oder Parkinson?
      A: Parkinson. Lieber mal ein Bier vergessen zu zahlen, als eins verschütten.
      1. Hallo,

        schon andeuten wollen. Anscheinend hast du den Wink nicht ganz so verstanden, wie ich ihn meinte. ;-)

        Ich wollte es noch einmal hervorheben, da es mir irgendwie wichtig erscheint.

        Mich treibt der Fehler zur Weißglut. Es hat alles so schön funktioniert, und dann gibt es einen Fehler den ich einfach nicht finden kann....

        Naja ich gehe jetzt einfach einmal schlafen, vielleicht löst sich das Problem ja von alleine ;-p

        Danke für die Hile und gute Nacht,
        Severin

        --
        They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
        -- Benjamin Franklin
  3. Hallo,

    auf HTTP-Ebene ist auch nichts zu erkennen (bis auf das der Webserver mal ein Update vertragen könnte ;). Da auch sonst eine Reproduktion des Fehlers nicht möglich scheint, würde ich von einem Problem auf der Clientseite spekulieren. Ich würde mich an Deiner Stelle aber nicht auf das Suchen versteifen.

    Da die entsprechenden Seiten nicht gefunden werden, kannst Du dem Problem mit einem ErrorDocument Herr werden:

      
    # .htaccess  
    ErrorDocument /error.php  
    ###########  
    
    
      
    <?php /* error.php */  
    if(isset($_SERVER["REDIRECT_STATUS"]) && $_SERVER["REDIRECT_STATUS"]==404){  
     $pfad=explode('%3f',$_SERVER["REQUEST_URI"],2);  
     if(file_exists('.'.$pfad[0])){  
      if(php_sapi_name()=='cgi')  
       header('Status: 200');  
      else header('HTTP/1.1 200 OK',true,200);  
      
      $_SERVER["QUERY_STRING"]=$pfad[1];  
      parse_str($pfad[1],$_GET);  
      include($pfad[0]);  
     }  
    }  
    exit;  
    ?>
    

    Gruß aus Berlin!
    eddi

    1.   
      # .htaccess  
      ErrorDocument 404 /error.php  
      ###########