1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Kommentarfunktion erzeugt 404 Meldung

Dieses Thema im Forum "Konfiguration" wurde erstellt von Mohnfarbe, 8. Dezember 2013.

  1. Mohnfarbe

    Mohnfarbe Member

    Registriert seit:
    10. September 2013
    Beiträge:
    21
    Zustimmungen:
    0
    Hallo,

    vor einer Woche habe ich ein Update auf Wordpress 3.7.1 gemacht.
    Seitdem funktioniert die Kommentarfunktion bei den Artikeln nicht mehr.

    In der Browserzeile steht: http://www.rapunzel-lounge.com/wp-comments-post.php

    und auf der Seite erscheint Error 404

    Ich habe schon alle Plugins deaktiviert, aber es ändert sich nichts.

    Kann mir jemand weiterhelfen? Und was braucht ihr dazu?
    Bitte in einfachen Worten, ich bin keine Technikerin :(

    Danke erstmal und schöne Grüße
    mohnfarbe
     
  2. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Und Du hast nachgeschaut, ob die wp-comments-post.php möglicherweise tatsächlich nicht vorhanden ist?
     
  3. Mohnfarbe

    Mohnfarbe Member

    Registriert seit:
    10. September 2013
    Beiträge:
    21
    Zustimmungen:
    0
    Hallo Melewo,
    ja, sie ist im Editor drin und sieht so aus:

    <?php

    /**
    *@desc Included at the bottom of post.php and single.php, deals with all comment layout
    */

    if ( !empty($post->post_password) && $_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) :
    ?>
    <p><?php _e('Enter password.', 'grisaille'); ?></p>
    <?php return; endif; ?>

    <h2 id="comments"><?php comments_popup_link(__('0 comments','grisaille'), __('1 comment', 'grisaille'), __('% comments', 'grisaille'), 'comments-link', false); ?>

    <?php if ( comments_open() ) : ?>
    <a href="#postcomment" title="<?php _e('Leave a comment', 'grisaille'); ?>">&raquo;</a>
    <?php endif; ?>
    </h2>
    <?php if ( $comments ) : ?>
    <ol id="commentlist">
    <?php wp_list_comments(); ?>
    <?php foreach ($comments as $comment) : ?>
    <?php endforeach; ?>
    </ol>
    <?php paginate_comments_links() ?>

    <?php endif; ?>


    <?php if ( comments_open() ) : ?>


    <?php if ( get_option('comment_registration') && !$user_ID ) : ?>
    <p><?php printf(__('You must be <a href="%s">logged in</a> to post a comment.'), get_option('siteurl')."/wp-login.php?redirect_to=".urlencode(get_permalink()));?></p>
    <?php else : ?>

    <?php comment_form(); ?>

    <?php endif; // If registration required and not logged in ?>

    <?php else : // Comments are closed ?>
    <p class="comments-off"><?php _e('Sorry, comments are closed.', 'grisaille'); ?></p>
    <?php endif; ?>


    Für mich leider Bahnhof.
    LG
     
  4. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Im Editor? Wie erreichst Du denn die wp-comments-post.php mit dem Editor von WP? Oder welchen Editor meinst Du?
    Die sollte per FTP auf der ersten Ebene von WP zu finden sein und ist eigentlich nicht mit dem Editor von WP erreichbar. Der Inhalt von der wp-comments-post.php sieht so aus:

    https://github.com/WordPress/WordPress/blob/master/wp-comments-post.php
     
  5. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Könnte sein, dass dieses Captcha-Plugin einiges angelegt oder umgeschrieben hat. Da ich das nicht kenne, weiß ich nicht so richtig, wie das arbeitet. Doch das wird ja wohl keine Core-Dateien löschen und auf einer anderen Ebene neu anlegen. Und die Post wird nun einmal vom Formular an wp-comments-post.php adressiert. Wenn nun das Formular unvollständig ausgefüllt sein sollte, so müsste auch die Fehlermitteilung von der wp-comments-post.php generiert werden.
     
  6. Mohnfarbe

    Mohnfarbe Member

    Registriert seit:
    10. September 2013
    Beiträge:
    21
    Zustimmungen:
    0
    Es ist der Editor, den ich innerhalb meines Themes erreiche unter Design/Editor/comments.php. Das ist auch der Editor, aus dem heraus ich die comments.php kopiert habe.

    LG mohnfarbe
     
  7. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Du sollst aber nicht nach einer comments.php ausschau halten, sondern nach einer wp-comments-post.php. Genau das ist eigentlich die Datei, an die Dein Formular die Kommentare sendet

    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    und genau die scheint nicht gefunden zu werden. Die siehst Du, wenn Du Dich per FTP in Deinem Webspace einloggst, auf der Ebene oberhalb der restlichen WP-Verzeichnisse, falls sie denn vorhanden ist.
     
  8. Mohnfarbe

    Mohnfarbe Member

    Registriert seit:
    10. September 2013
    Beiträge:
    21
    Zustimmungen:
    0
    Auf der ersten Ebene von wordpress sieht die wp-comments-post.php so aus:

    <?php
    /**
    * Handles Comment Post to WordPress and prevents duplicate comment posting.
    *
    * @package WordPress
    */

    if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) {
    header('Allow: POST');
    header('HTTP/1.1 405 Method Not Allowed');
    header('Content-Type: text/plain');
    exit;
    }

    /** Sets up the WordPress Environment. */
    require( dirname(__FILE__) . '/wp-load.php' );

    nocache_headers();

    $comment_post_ID = isset($_POST['comment_post_ID']) ? (int) $_POST['comment_post_ID'] : 0;

    $post = get_post($comment_post_ID);

    if ( empty( $post->comment_status ) ) {
    /**
    * Fires when a comment is attempted on a post that does not exist.
    *
    * @since unknown
    * @param int $comment_post_ID Post ID.
    */
    do_action( 'comment_id_not_found', $comment_post_ID );
    exit;
    }

    // get_post_status() will get the parent status for attachments.
    $status = get_post_status($post);

    $status_obj = get_post_status_object($status);

    if ( ! comments_open( $comment_post_ID ) ) {
    /**
    * Fires when a comment is attempted on a post that has comments closed.
    *
    * @since unknown
    * @param int $comment_post_ID Post ID.
    */
    do_action( 'comment_closed', $comment_post_ID );
    wp_die( __('Sorry, comments are closed for this item.') );
    } elseif ( 'trash' == $status ) {
    /**
    * Fires when a comment is attempted on a trashed post.
    *
    * @since 2.9.0
    * @param int $comment_post_ID Post ID.
    */
    do_action( 'comment_on_trash', $comment_post_ID );
    exit;
    } elseif ( ! $status_obj->public && ! $status_obj->private ) {
    /**
    * Fires when a comment is attempted on a post in draft mode.
    *
    * @since unknown
    * @param int $comment_post_ID Post ID.
    */
    do_action( 'comment_on_draft', $comment_post_ID );
    exit;
    } elseif ( post_password_required( $comment_post_ID ) ) {
    /**
    * Fires when a comment is attempted on a password-protected post.
    *
    * @since unknown
    * @param int $comment_post_ID Post ID.
    */
    do_action( 'comment_on_password_protected', $comment_post_ID );
    exit;
    } else {
    /**
    * Fires before a comment is posted.
    *
    * @since unknown
    * @param int $comment_post_ID Post ID.
    */
    do_action( 'pre_comment_on_post', $comment_post_ID );
    }

    $comment_author = ( isset($_POST['author']) ) ? trim(strip_tags($_POST['author'])) : null;
    $comment_author_email = ( isset($_POST['email']) ) ? trim($_POST['email']) : null;
    $comment_author_url = ( isset($_POST['url']) ) ? trim($_POST['url']) : null;
    $comment_content = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;

    // If the user is logged in
    $user = wp_get_current_user();
    if ( $user->exists() ) {
    if ( empty( $user->display_name ) )
    $user->display_name=$user->user_login;
    $comment_author = wp_slash( $user->display_name );
    $comment_author_email = wp_slash( $user->user_email );
    $comment_author_url = wp_slash( $user->user_url );
    if ( current_user_can( 'unfiltered_html' ) ) {
    if ( ! isset( $_POST['_wp_unfiltered_html_comment'] )
    || ! wp_verify_nonce( $_POST['_wp_unfiltered_html_comment'], 'unfiltered-html-comment_' . $comment_post_ID )
    ) {
    kses_remove_filters(); // start with a clean slate
    kses_init_filters(); // set up the filters
    }
    }
    } else {
    if ( get_option('comment_registration') || 'private' == $status )
    wp_die( __('Sorry, you must be logged in to post a comment.') );
    }

    $comment_type = '';

    if ( get_option('require_name_email') && !$user->exists() ) {
    if ( 6 > strlen($comment_author_email) || '' == $comment_author )
    wp_die( __('<strong>ERROR</strong>: please fill the required fields (name, email).') );
    elseif ( !is_email($comment_author_email))
    wp_die( __('<strong>ERROR</strong>: please enter a valid email address.') );
    }

    if ( '' == $comment_content )
    wp_die( __('<strong>ERROR</strong>: please type a comment.') );

    $comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_parent']) : 0;

    $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');

    $comment_id = wp_new_comment( $commentdata );
    $comment = get_comment($comment_id);

    /**
    * Perform other actions when comment cookies are set.
    *
    * @since 3.4.0
    *
    * @param object $comment Comment object.
    * @param WP_User $user User object. The user may not exist.
    */
    do_action( 'set_comment_cookies', $comment, $user );

    $location = empty($_POST['redirect_to']) ? get_comment_link($comment_id) : $_POST['redirect_to'] . '#comment-' . $comment_id;

    /**
    * The location URI to send commenter after posting.
    *
    * @since unknown
    *
    * @param string $location The 'redirect_to' URI sent via $_POST.
    * @param object $comment Comment object.
    */
    $location = apply_filters( 'comment_post_redirect', $location, $comment );

    wp_safe_redirect( $location );
    exit;


    Vielleicht ist hier ein Fehler drin?
     
  9. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Denke eher nicht, wenn die vorhanden ist, dann ist die ja vorhanden und die Frage stellt sich, warum die trotz Vorhandensein nicht erreichbar ist. Du könntest jetzt auch noch den Inhalt von Deiner htaccess posten und schöner wäre, für Quelltext und Code im erweiterten Formular die Formatierungen für # <> oder PHP zu benutzen.
     
  10. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Habe mich noch etwas durch ältere Fehler zu gelesen, was da noch in Frage kommen könnte:

    http://wordpress.org/support/topic/failed-to-submit-comment-404-error

    http://wordpress.org/support/topic/no-comments-404-on-wp-comments-postsphp-fixed
     
  11. Mohnfarbe

    Mohnfarbe Member

    Registriert seit:
    10. September 2013
    Beiträge:
    21
    Zustimmungen:
    0
    Hier ist noch meine htaccess:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  12. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Ja was ist denn das?

    Wenn Post vom Formular erfolgt, dann soll / was dafür ausgelöst werden?
    Das hat ein Plugin geschrieben, wer wohl sonst?
    Ich hätte jetzt diese beiden Zeilen auskommentiert, weiß aber nicht, ob dann diese Captcha-Abfrage noch funktioniert. Deine wp-comments-post.php sollte aber wieder erreichbar sein, wenn Du diese Zeilen mit einer Raute # auskommentierst.
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Nur, wie bereits geschrieben, ich habe Null-Ahnung, warum die da so umgeschrieben wird, möglicherweise sollte dafür irgendeine zusätzliche WP-Rewrite greifen und es vielleicht nicht richtig tut.
     
    #12 Melewo, 8. Dezember 2013
    Zuletzt bearbeitet: 8. Dezember 2013
  13. Mohnfarbe

    Mohnfarbe Member

    Registriert seit:
    10. September 2013
    Beiträge:
    21
    Zustimmungen:
    0
    Das scheint untypisch zu sein. Vorsicht bei Kommentaren?
    Was bedeutet das jetzt und wie kommt das dahin?
    Und was mache ich damit?
    Haben Sie eine Idee?
     
  14. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Die normale WP htaccess ist nicht mehr als das:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Alles andere ergibt jedoch noch irgendwie einen Sinn in Bezug auf Sicherheit, Auslieferung und Cache, soweit ich das überblicken kann. Und wenn Du das nicht so mit einem Theme erhalten hast, dann hast Du sicherlicherlich einige Plugins installiert, die das in die htaccess geschrieben haben oder?

    Das mit der wp-comments-post.php könnte aber mit dieser Captcha-Abfrage zusammenhängen, weiß es nicht. Weiß nur eins, kommentiere diese Zeilen erst einmal mit einer vorausgehenden # aus und Du wirst sehen, ob die Kommentarseite keinen 404 mehr liefert.

    Nun ist es ja so, Du hattest zum Test alle Plugins deaktiviert und es hatte nichts gebracht, weil es nichts bringen konnte, wenn die htaccees noch Regeln enthält, die den Aufruf vereiteln.
     
  15. Mohnfarbe

    Mohnfarbe Member

    Registriert seit:
    10. September 2013
    Beiträge:
    21
    Zustimmungen:
    0
    Hallo Melewo,
    erst einmal vielen Dank für Deinen Einsatz für mein Problem.

    Ich habe nun das mit der Raute eingesetzt und siehe da, die 404-Seite ist weg, allerdings erscheint mein Header und das Menu, ansonsten ist die Seite leer.
    Kann es auch sein, dass sich zwei Plugins nicht verstehen? Und ist deaktivieren dasgleiche wie deinstallieren? Ich meine, setzt sich bei einer Deinstallation z.B. die htaccess wieder zurück auf Normalzustand?

    Was auch komisch ist, dass meine früheren Artikel das Captcha noch haben, und mein neuer Artikel nicht!

    Ich bin jetzt ziemlich müde, da mich das sehr anstrengt, wenn ich etwas nicht verstehe.

    Könntest Du Dir vorstellen, selber auf meinem Editor in FTP nachzuschauen? Vielleicht erkennst Du dann besser, woran es liegen könnte? Ich würde auch dafür bezahlen, wenn es nicht zuviel ist.

    Nochmals Tausend Dank für deine Unterstützung und lieben Gruß
    Meine Email ist info@rapunzel-lounge.com
     
  16. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Ja, geht in Ordnung, Du erhältst heute im Laufe des Tages noch eine Nachricht von mir.
     
  17. Mohnfarbe

    Mohnfarbe Member

    Registriert seit:
    10. September 2013
    Beiträge:
    21
    Zustimmungen:
    0
    Hallo an alle,

    ich habe den Fehler gefunden!

    Und da wir ja alle von einander lernen, möchte ich das hier auch kurz posten.

    Und zwar hat mich der Satz von Melewo darauf gebracht:

    Es lag nicht am Captcha, sondern am Plugin Acunitex WP Security.
    Ich hatte alle Plugins deaktiviert, und es hatte sich nichts geändert. Dieses Plugin fiel mir auf, da es um Security geht und so habe ich es deinstalliert.
    Und siehe da, die Kommentarfunktion geht wieder! :razz:

    Ich kann das nur so verstehen, dass deaktivieren nicht gleich deinstallieren ist.
    Also dass z.B. in meiner htaccess trotz Deaktivierung immer noch Regeln standen, die griffen.

    Danke Melewo für diesen Hinweis, der mich inspirierte :wink:
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden