Joachim: wordpress liefert Status 500 bei fehlerhafter Formulareingabe

Hi,

gibt man bei der aktuellen WP-Version (2.6.3) beim Kommentar nix ein wird - natürlich - eine Fehlerseite zurückgeliefert. Diese wird von der function wp_die() in der functions.php generiert, und mit einem 500er Header versehen.

Das hat beim IE den Effekt, das er zur internen Fehlerseite weiterleitet, und dort irreführende Meldunge a la fehlerhaft programmierte Website ausgibt, anstatt "Keine Eingabe bei e-mail" anzuzeigen.

Gibts einen Grund, so zu verfahren, den ich nicht kenne, oder haben die WP-Entwickler mit den Status 500 hier einfach übers Ziel hinausgeschossen? Ein Auskommentieren der Statusgenerierung führt zur Auslieferung der Fehlerseite mit Status "200 ok" aus, und IE zeig die gewünschte Fehlermeldung an.

Gruesse, Joachim

--
Am Ende wird alles gut.
  1. Hallo,

    gibt man bei der aktuellen WP-Version (2.6.3) beim Kommentar nix ein wird - natürlich - eine Fehlerseite zurückgeliefert. Diese wird von der function wp_die() in der functions.php generiert, und mit einem 500er Header versehen.

    dann sollte man den Entwicklern diesen Code wieder um die Ohren hauen. Und nochmal. Bis sie lachen. Und dann nochmal. Weil sie lachen.

    Das hat beim IE den Effekt, das er zur internen Fehlerseite weiterleitet, und dort irreführende Meldunge a la fehlerhaft programmierte Website ausgibt, anstatt "Keine Eingabe bei e-mail" anzuzeigen.

    Ja. Wenn die Länge (Content-Length) einer Fehlerseite ein Mindestmaß unterschreitet (AFAIK 1024 Bytes), dann hält es der IE für schlauer, seine eigene interne Fehlerseite anzuzeigen. Kann man aber in den IE-Einstellungen ("Kurze HTTP-Fehlermeldungen anzeigen") ändern.

    Gibts einen Grund, so zu verfahren, den ich nicht kenne, oder haben die WP-Entwickler mit den Status 500 hier einfach übers Ziel hinausgeschossen?

    Letzteres. Der HTTP-Statuscode 500 ist für die Bedingung "Internal Server Error" vorgesehen - also ein schwerwiegender Fehler in der Serverkonfiguration, der dazu führt, dass die Anfrage nicht beantwortet werden kann.
    Wenn aber die Eingabedaten einfach nicht die Bedingungen erfüllen, die der Autor gerne hätte, ist das alles andere als ein Serverfehler.

    Ein Auskommentieren der Statusgenerierung führt zur Auslieferung der Fehlerseite mit Status "200 ok" aus, und IE zeig die gewünschte Fehlermeldung an.

    So gehört sich das auch.

    So long,
     Martin

    --
    Frauen sind wie Elektrizität: Fasst man sie an, kriegt man eine gewischt.
    1. Hi,

      Der HTTP-Statuscode 500 ist für die Bedingung "Internal Server Error" vorgesehen - also ein schwerwiegender Fehler in der Serverkonfiguration, der dazu führt, dass die Anfrage nicht beantwortet werden kann.
      Wenn aber die Eingabedaten einfach nicht die Bedingungen erfüllen, die der Autor gerne hätte, ist das alles andere als ein Serverfehler.

      Stimmt, da waeren wohl 400 Bad Request oder 406 Not Acceptable passender :-)

      MfG ChrisB

      --
      „This is the author's opinion, not necessarily that of Starbucks.“
    2. Hi Martin,

      Ein Auskommentieren der Statusgenerierung führt zur Auslieferung der Fehlerseite mit Status "200 ok" aus, und IE zeig die gewünschte Fehlermeldung an.

      So gehört sich das auch.

      danke Dir... aber erst mal war ich so verblüfft, dass ich von mangelnden Kentnissen meinerseits ausging... hast mich wieder aufgebaut ;-)

      Gruesse, Joachim

      --
      Am Ende wird alles gut.