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
This commit is contained in:
Dominik Schilling 2014-11-26 20:17:24 +00:00
parent 184d327ff4
commit 7e0c893415
3 changed files with 15 additions and 12 deletions

View File

@ -47,7 +47,7 @@ if ( ! comments_open( $comment_post_ID ) ) {
* @param int $comment_post_ID Post ID. * @param int $comment_post_ID Post ID.
*/ */
do_action( 'comment_closed', $comment_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 ) { } elseif ( 'trash' == $status ) {
/** /**
* Fires when a comment is attempted on a trashed post. * Fires when a comment is attempted on a trashed post.
@ -111,21 +111,24 @@ if ( $user->exists() ) {
} }
} }
} else { } else {
if ( get_option('comment_registration') || 'private' == $status ) if ( get_option( 'comment_registration' ) || 'private' == $status ) {
wp_die( __('Sorry, you must be logged in to post a comment.') ); wp_die( __( 'Sorry, you must be logged in to post a comment.' ), 403 );
}
} }
$comment_type = ''; $comment_type = '';
if ( get_option('require_name_email') && !$user->exists() ) { if ( get_option('require_name_email') && !$user->exists() ) {
if ( 6 > strlen($comment_author_email) || '' == $comment_author ) if ( 6 > strlen( $comment_author_email ) || '' == $comment_author ) {
wp_die( __('<strong>ERROR</strong>: please fill the required fields (name, email).') ); wp_die( __( '<strong>ERROR</strong>: please fill the required fields (name, email).' ), 200 );
elseif ( !is_email($comment_author_email)) } else if ( ! is_email( $comment_author_email ) ) {
wp_die( __('<strong>ERROR</strong>: please enter a valid email address.') ); wp_die( __( '<strong>ERROR</strong>: please enter a valid email address.' ), 200 );
}
} }
if ( '' == $comment_content ) if ( '' == $comment_content ) {
wp_die( __('<strong>ERROR</strong>: please type a comment.') ); wp_die( __( '<strong>ERROR</strong>: please type a comment.' ), 200 );
}
$comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_parent']) : 0; $comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_parent']) : 0;

View File

@ -1131,7 +1131,7 @@ function wp_allow_comment( $commentdata ) {
if ( defined( 'DOING_AJAX' ) ) { if ( defined( 'DOING_AJAX' ) ) {
die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') ); die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') );
} }
wp_die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') ); wp_die( __( 'Duplicate comment detected; it looks as though you&#8217;ve already said that!' ), 409 );
} }
/** /**
@ -1249,7 +1249,7 @@ function check_comment_flood_db( $ip, $email, $date ) {
if ( defined('DOING_AJAX') ) if ( defined('DOING_AJAX') )
die( __('You are posting comments too quickly. Slow down.') ); 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 );
} }
} }
} }

View File

@ -4,7 +4,7 @@
* *
* @global string $wp_version * @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. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.