Im Script die Fehlerseite ausgeben
Encoder
- php
0 1UnitedPower0 Jackson0 1UnitedPower0 Encoder0 1UnitedPower0 Baba0 Encoder
0 hotti
Hallo
Ich habe ein Script das anhand eines Parameters in der URL den auszugebenden Inhalt bestimmt. Wenn dieser Parameter nicht in einem vorgegebenen Wertebereich liegt, sollte am besten die Fehlerseite angezeigt werden, die auch dann kommt wenn eine falsche Unterseite angezeigt wird.
Zum Beispiel wenn man eingibt http://example.com/script.php?page=blödsinn (script.php gibt es, page=blödsinn ist ungültig) dann soll das selbe kommen wie bei http://example.com/gibtsnicht
Geht das?
Geht das?
Du kannst nen HTTP-Error 404 senden. http://php.net/manual/de/function.header.php
Du kannst nen HTTP-Error 404 senden. http://php.net/manual/de/function.header.php
Könnte man, bei fehlerhaften Parametern könnte man aber einen 400 senden. (http://de.wikipedia.org/wiki/HTTP-Statuscode)
Könnte man, bei fehlerhaften Parametern könnte man aber einen 400 senden. (http://de.wikipedia.org/wiki/HTTP-Statuscode)[!sic]
Wäre tatsächlich schöner, oder 422.
Ok ich erkläre noch ein bisschen genauer was da passiert :-)
Der Parameter wird von mod_rewrite eingefügt. Zum Beispiel http://example.com/produkte/x653 wird umgesetzt in products.php?nr=x653. Daher die Idee, den selben Fehler zu bringen wie bei http://example.com/proooodukte oder so, was für den Benutzer den selbe Aufbau hat. Beides sieht nach Unterseite aus.
Der Parameter wird von mod_rewrite eingefügt. Zum Beispiel http://example.com/produkte/x653 wird umgesetzt in products.php?nr=x653. Daher die Idee, den selben Fehler zu bringen wie bei http://example.com/proooodukte oder so, was für den Benutzer den selbe Aufbau hat. Beides sieht nach Unterseite aus.
Dann ergibt 404 meiner bescheidenen Meinung nach am meisten Sinn.
Der Parameter wird von mod_rewrite eingefügt. Zum Beispiel http://example.com/produkte/x653 wird umgesetzt in products.php?nr=x653. Daher die Idee, den selben Fehler zu bringen wie bei http://example.com/proooodukte
Zwei Fragen, die Du Dir stellen musst:
Ich nehme an, zu 1) das machst Du gar nicht selbst, sondern macht der Server (zum Beispiel über "Standarddokumente" (Win Server) oder ähnliches von Apache, etc.). Ich nehme an zu 2) ein 404 Code wird gesendet (kannst Du einfach mit Firebug ermitteln) und Du hast irgendwo eine html Datei geschrieben, die dann angezeigt wird?!?! Nur Vermutungen, es gibt zig andere Wege, das zu tun.
Wenn dem ungefähr so ist:
Zwei Dinge sind zu tun, wenn Du die Fehlerseite auch bei einer falschen Produktnr. anzeigen möchtest:
Cheers,
Baba
Ich nehme an, zu 1) das machst Du gar nicht selbst, sondern macht der Server (zum Beispiel über "Standarddokumente" (Win Server) oder ähnliches von Apache, etc.).
Richtig, das lass ich den Server selbst tun.
Genau dieses würde ich gerne per Code auslösen, sofern das möglich ist.
So wirklich glaub ich ja nicht ganz dran, denn die 404 kommt vom Server und der wird sich kaum über PHP triggern lassen. Aber hätt ja sein können.
Selber den Header schicken ist natürlich kein Problem.
hi,
Geht das?
Selbstverständlich wirst Du eine Fehlerseite ausgeben, wenn unerlaubte oder nicht konfigurierte Parameter verwendet werden.
Die Grundlage dafür ist eine Kontrollstruktur über diejenigen Parameter, welche Du als Schlüsselparameter für eine Webressource festlegst.
Hotti
Hallo
Die Grundlage dafür ist eine Kontrollstruktur über diejenigen Parameter, welche Du als Schlüsselparameter für eine Webressource festlegst.
Die habe ich. Ich weiß nur nicht wie ich den Server zu dieser Meldung bewege, ohne die sonstige Fehlerseite nachzubauen.
Am liebsten wäre mir etwas dieser Art:
if (nixGut($parameter))
print(Fehlerseite so wie sie sonst auch erscheinen würde);
hi,
if (nixGut($parameter))
print(Fehlerseite so wie sie sonst auch erscheinen würde);
OK, die Kontrollstruktur. Idee: Alles was ausgegeben werden soll, nicht auf print sondern in einen eigenen Puffer (out_buffer) schreiben. Dann legst Du noch einen Puffer an, für die Fehlermeldungen (error_buffer).
Wenn am Ende alles ausgegeben werden soll, guckt Dein Programm zuerst in den error_buffer und wenn da was drin steht, erzeugst Du damit die Fehlerseite.
Hotti