Probleme mit GET-Parametern
Severin Kacianka
- webserver
0 wahsaga0 Severin Kacianka0 eddi0 eddi
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
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
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
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
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
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
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
Hallo,
Nimm besser http://www.tanzenberg.at/MODULES/aktenschrank/admin.php zum einloggen. Dieser Link führt direkt zu meinem Modul.
Gruß,
Severin
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
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
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
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
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
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
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
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
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
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
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
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
# .htaccess
ErrorDocument 404 /error.php
###########