Fehlerseite bei den Kommentaren

  • Ahoi,

    ich bin überrascht, dass bei WP 1.5 bei einer Fehleingabe bei den Kommentaren (z.B. Name vergessen) nur eine weiße Seite mit Fehlermeldung kommt. Ich würde es gerne so umbauen, dass die Seite neu geladen wird und dann drauf hingewiesen wird, dass ein Fehler aufgetreten ist. Nur in der "wp-comments-post.php" sind ja die Vorraussetzungen nicht so gut:

    Beispiel:

    Code
    if ( get_settings('require_name_email') && ('' == $comment_author_email || '' == $comment_author) )
    	die( __('Error: please fill the required fields (name, email).') );

    Wie löse ich das nun, weil selbst wenn ich per header() auf die Ursprungsseite zurückverweise krieg ich das mit der Fehlermeldung nicht so ganz hin.


    Hat jemand eine Idee?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • ...da musst du wohl selber rumprobieren, im offiziellen Forum habe ich dazu nichts gefunden. Mir persönlich ist das aber ziemlich wurscht wenn da die weisse Seite erscheint. Wenn der User schon einen Fehler macht muss er nicht auch noch mit einer schönen Seite belohnt werden. 8)

  • Zitat von uMarvin

    Schade, offensichtlich lebt ihr alle gerne mit dieser unschönen Lösung. Dann werkel ich bei Gelegenheit mal selber ohne Tipps. 8)

    Mir wird das durch deinen Beitrag hier gerade erst bewusst, aber ... hm, stimmt! Das ist in der Tat alles andere als optimal.
    (von Seiten der Usability her, usw.) :?

    ...darum bin ich umso gespannter was für eine Lösung du entwickelst! :wink:
    (Sorry, Ich kann aktuell leider noch mit keinem php-Wissen dienen.)

  • Auch mir ist das leidige Kommentar-Fehlerausgabe-Problem aufgefallen und die Lösung ist eigentlich ganz einfach (man muß nur noch die Zeit haben, sie auch umzusetzen 8) ):

    In der Datei wp-comments-post.php werden die Formulareingaben mittels die abgebrochen und geben Fehlermeldungen aus. Hier die vier Fälle:

    Code
    Zeile 13: die( __('Sorry, comments are closed for this item.') );
    Zeile 29: die( __('Sorry, you must be logged in to post a comment.') );
    Zeile 35: die( __('Error: please fill the required fields (name, email).') );
    Zeile 38: die( __('Error: please type a comment.') );


    Dazu fallen mir zwei Lösungen ein...

    1. Erstellen von 4 Fehlerseiten als Teile des Themes. Danach kann man die oben gezeigten Fehlerausgaben umleiten in den Aufruf dieser Dateien. Beispiel:

    Code
    die(include (TEMPLATEPATH . '/fehler.php'));


    Diese Lösung ist relativ einfach aber nicht sehr schön, denn wozu 4 neue Dateien erstellen?. Also die zweite Lösung:

    2. Man programmiert ein Plugin (also eine neue Funktion), das wiederum die Fehlerseite aufruft und dabei einen Fehlertext übergibt. Diese Funktion ersetzt dann in der wp-comments-post.php die Fehlerausgabe. Beispiel:

    Code
    die(errorhandling('Error: please fill the required fields (name, email).'));


    Vorteile dabei: Es muss nur eine Fehlerseite angelegt werden und die Funktion ist überall verfügbar.

    Vielleicht komme ich am Wochenende mal dazu und programmiere das. Eigentlich sind es nur ein paar wenige Zeile Code und die weiße Seite bei Kommentaren geht mir schon lange auf den Sack :shock: Aber ihr wisst ja wie das mit der Zeit so ist. Vielleicht gibt es zu den genannten Lösungen ja auch noch konstruktive Ergänzungen? Die können dann gleich mit in die Lösung einfließen.

    Gruß,
    Pöti

    Achtung: Der angegebene Code dient nur als Beispiel und ist nicht getestet!

    Was weiß ein Fisch von dem Wasser, in dem er sein ganzes Leben lang schwimmt? (Einstein)

  • Ja das Verfahren ist mir klar, das mit den Fehlerseiten ist aber mehr als Umständlich, weil man wenn dann ja auch die bereits eingegeben Daten weiter im Formular haben möchte und eben die Fehlermeldung.

    Das mit der Funktion klingt logisch, könnte ich aber nicht so schreiben, weil es mir da an Wissen über WP fehlt... :-) Ich versteh auch nicht so ganz den Sinn das Ganze mit "die" zu beenden im Code. In meinem Gästebuch und meinem Formmailer ging es einfacher die Fehlerseite anzupassen, weil da der Ausgabecode des Plugins mit in der gleichen Datei ist und man so da einfacher etwas drehen kann.

  • Man könnte die Eingaben des Formulars mitnehmen und dann wieder ausgeben, das sollte das kleinste Problem sein.

    Aber Du hast ja recht, die wp-comments-post.php hätte auch ohne Befehl Die umgesetzt werden können. Aber ich glaube nicht, dass es Sinn der Sache ist, die komplette wp-comments-post.php umzukrempeln, vor allem weil man sich damit bei künftigen Updates das Leben nur wieder schwer macht.

    Es sei denn, man programmiert sie so toll, das Matt & Co. sie in Zukunft direkt übernehmen. 8) Das ist doch mal ne Aufgabe! :wink:

    Was weiß ein Fisch von dem Wasser, in dem er sein ganzes Leben lang schwimmt? (Einstein)

  • Gelöst hat es diese Seite nun nicht... Hier wird nur wieder zurück zur Ausgangsseite geleitet bei einer falschen oder fehlenden Ausgabe - DAS ist ja nicht das Problem. Das Problem besteht darin, eine fehlerspezifisiche Meldung auszugeben und eventuell bereits eingegeben Daten zu übernehmen. Denn im Beispiel ist es ja so: jemand der den Namen vergisst aber schon einen Kommantar ins Feld geschrieben hat muss ihn nochmal neu verfassen...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!