From 7e0c893415777f6ee3a68feb3a28de073de02506 Mon Sep 17 00:00:00 2001 From: Dominik Schilling Date: Wed, 26 Nov 2014 20:17:24 +0000 Subject: [PATCH] Comments: Use proper HTTP response codes for validation errors. props miqrogroove, solarissmoke, mackensen. fixes #11286. Built from https://develop.svn.wordpress.org/trunk@30579 git-svn-id: http://core.svn.wordpress.org/trunk@30569 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-comments-post.php | 21 ++++++++++++--------- wp-includes/comment.php | 4 ++-- wp-includes/version.php | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/wp-comments-post.php b/wp-comments-post.php index 0ed359c5bb..b1612d2f7d 100644 --- a/wp-comments-post.php +++ b/wp-comments-post.php @@ -47,7 +47,7 @@ if ( ! comments_open( $comment_post_ID ) ) { * @param int $comment_post_ID Post ID. */ do_action( 'comment_closed', $comment_post_ID ); - wp_die( __('Sorry, comments are closed for this item.') ); + wp_die( __( 'Sorry, comments are closed for this item.' ), 403 ); } elseif ( 'trash' == $status ) { /** * Fires when a comment is attempted on a trashed post. @@ -111,21 +111,24 @@ if ( $user->exists() ) { } } } else { - if ( get_option('comment_registration') || 'private' == $status ) - wp_die( __('Sorry, you must be logged in to post a comment.') ); + if ( get_option( 'comment_registration' ) || 'private' == $status ) { + wp_die( __( 'Sorry, you must be logged in to post a comment.' ), 403 ); + } } $comment_type = ''; if ( get_option('require_name_email') && !$user->exists() ) { - if ( 6 > strlen($comment_author_email) || '' == $comment_author ) - wp_die( __('ERROR: please fill the required fields (name, email).') ); - elseif ( !is_email($comment_author_email)) - wp_die( __('ERROR: please enter a valid email address.') ); + if ( 6 > strlen( $comment_author_email ) || '' == $comment_author ) { + wp_die( __( 'ERROR: please fill the required fields (name, email).' ), 200 ); + } else if ( ! is_email( $comment_author_email ) ) { + wp_die( __( 'ERROR: please enter a valid email address.' ), 200 ); + } } -if ( '' == $comment_content ) - wp_die( __('ERROR: please type a comment.') ); +if ( '' == $comment_content ) { + wp_die( __( 'ERROR: please type a comment.' ), 200 ); +} $comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_parent']) : 0; diff --git a/wp-includes/comment.php b/wp-includes/comment.php index 5d5689b9df..990ea8cf8e 100644 --- a/wp-includes/comment.php +++ b/wp-includes/comment.php @@ -1131,7 +1131,7 @@ function wp_allow_comment( $commentdata ) { if ( defined( 'DOING_AJAX' ) ) { die( __('Duplicate comment detected; it looks as though you’ve already said that!') ); } - wp_die( __('Duplicate comment detected; it looks as though you’ve already said that!') ); + wp_die( __( 'Duplicate comment detected; it looks as though you’ve already said that!' ), 409 ); } /** @@ -1249,7 +1249,7 @@ function check_comment_flood_db( $ip, $email, $date ) { if ( defined('DOING_AJAX') ) die( __('You are posting comments too quickly. Slow down.') ); - wp_die( __('You are posting comments too quickly. Slow down.'), '', array('response' => 403) ); + wp_die( __( 'You are posting comments too quickly. Slow down.' ), 429 ); } } } diff --git a/wp-includes/version.php b/wp-includes/version.php index d40a2ae433..3b8cea84ad 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.1-beta2-30578'; +$wp_version = '4.1-beta2-30579'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.