X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/ff81ee6e8304a1982a3ec4f5b134764a29d502cf..refs/tags/wordpress-2.0.4:/wp-admin/post.php diff --git a/wp-admin/post.php b/wp-admin/post.php index 0f4187e9..a427d321 100644 --- a/wp-admin/post.php +++ b/wp-admin/post.php @@ -30,7 +30,7 @@ $editing = true; switch($action) { case 'post': - check_admin_referer(); + check_admin_referer('add-post'); $post_ID = write_post(); @@ -57,7 +57,7 @@ case 'post': if ( isset($_POST['save']) ) $location = "post.php?action=edit&post=$post_ID"; - header("Location: $location"); + wp_redirect($location); exit(); break; @@ -87,10 +87,10 @@ case 'edit': break; case 'editattachment': - check_admin_referer(); - $post_id = (int) $_POST['post_ID']; + check_admin_referer('update-attachment_' . $post_id); + // Don't let these be changed unset($_POST['guid']); $_POST['post_status'] = 'attachment'; @@ -105,17 +105,23 @@ case 'editattachment': add_post_meta($post_id, '_wp_attachment_metadata', $newmeta); case 'editpost': - check_admin_referer(); + $post_ID = (int) $_POST['post_ID']; + check_admin_referer('update-post_' . $post_ID); $post_ID = edit_post(); + $referredby = ''; + if ( !empty($_POST['referredby']) ) + $referredby = preg_replace('|https?://[^/]+|i', '', $_POST['referredby']); + $referer = preg_replace('|https?://[^/]+|i', '', wp_get_referer()); + if ($_POST['save']) { - $location = $_SERVER['HTTP_REFERER']; + $location = wp_get_referer(); } elseif ($_POST['updatemeta']) { - $location = $_SERVER['HTTP_REFERER'] . '&message=2#postcustom'; + $location = wp_get_referer() . '&message=2#postcustom'; } elseif ($_POST['deletemeta']) { - $location = $_SERVER['HTTP_REFERER'] . '&message=3#postcustom'; - } elseif (isset($_POST['referredby']) && $_POST['referredby'] != $_SERVER['HTTP_REFERER']) { + $location = wp_get_referer() . '&message=3#postcustom'; + } elseif (!empty($referredby) && $referredby != $referer) { $location = $_POST['referredby']; if ( $_POST['referredby'] == 'redo' ) $location = get_permalink( $post_ID ); @@ -124,15 +130,15 @@ case 'editpost': } else { $location = 'post.php'; } - header ('Location: ' . $location); // Send user on their way while we keep working + + wp_redirect($location); // Send user on their way while we keep working exit(); break; case 'delete': - check_admin_referer(); - $post_id = (isset($_GET['post'])) ? intval($_GET['post']) : intval($_POST['post_ID']); + check_admin_referer('delete-post_' . $post_id); $post = & get_post($post_id); @@ -147,11 +153,11 @@ case 'delete': die( __('Error in deleting...') ); } - $sendback = $_SERVER['HTTP_REFERER']; + $sendback = wp_get_referer(); if (strstr($sendback, 'post.php')) $sendback = get_settings('siteurl') .'/wp-admin/post.php'; elseif (strstr($sendback, 'attachments.php')) $sendback = get_settings('siteurl') .'/wp-admin/attachments.php'; $sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback); - header ('Location: ' . $sendback); + wp_redirect($sendback); break; case 'editcomment': @@ -203,6 +209,7 @@ case 'confirmdeletecomment': echo "\n"; echo "\n"; echo "\n"; + wp_nonce_field('delete-comment_' . $comment->comment_ID); echo ""; echo "  "; echo "\n"; @@ -212,10 +219,9 @@ case 'confirmdeletecomment': break; case 'deletecomment': - - check_admin_referer(); - $comment = (int) $_GET['comment']; + check_admin_referer('delete-comment_' . $comment); + $p = (int) $_GET['p']; if (isset($_GET['noredir'])) { $noredir = true; @@ -234,19 +240,18 @@ case 'deletecomment': wp_set_comment_status($comment->comment_ID, "delete"); do_action('delete_comment', $comment->comment_ID); - if (($_SERVER['HTTP_REFERER'] != "") && (false == $noredir)) { - header('Location: ' . $_SERVER['HTTP_REFERER']); + if ((wp_get_referer() != "") && (false == $noredir)) { + wp_redirect(wp_get_referer()); } else { - header('Location: '. get_settings('siteurl') .'/wp-admin/edit.php?p='.$p.'&c=1#comments'); + wp_redirect(get_settings('siteurl') .'/wp-admin/edit.php?p='.$p.'&c=1#comments'); } break; case 'unapprovecomment': - - check_admin_referer(); - $comment = (int) $_GET['comment']; + check_admin_referer('unapprove-comment_' . $comment); + $p = (int) $_GET['p']; if (isset($_GET['noredir'])) { $noredir = true; @@ -262,17 +267,17 @@ case 'unapprovecomment': wp_set_comment_status($comment->comment_ID, "hold"); - if (($_SERVER['HTTP_REFERER'] != "") && (false == $noredir)) { - header('Location: ' . $_SERVER['HTTP_REFERER']); + if ((wp_get_referer() != "") && (false == $noredir)) { + wp_redirect(wp_get_referer()); } else { - header('Location: '. get_settings('siteurl') .'/wp-admin/edit.php?p='.$p.'&c=1#comments'); + wp_redirect(get_settings('siteurl') .'/wp-admin/edit.php?p='.$p.'&c=1#comments'); } break; case 'mailapprovecomment': - $comment = (int) $_GET['comment']; + check_admin_referer('approve-comment_' . $comment); if ( ! $comment = get_comment($comment) ) die(sprintf(__('Oops, no comment with this ID. Go back!'), 'edit.php')); @@ -286,13 +291,14 @@ case 'mailapprovecomment': wp_notify_postauthor($comment->comment_ID); } - header('Location: ' . get_option('siteurl') . '/wp-admin/moderation.php?approved=1'); + wp_redirect(get_option('siteurl') . '/wp-admin/moderation.php?approved=1'); break; case 'approvecomment': - $comment = (int) $_GET['comment']; + check_admin_referer('approve-comment_' . $comment); + $p = (int) $_GET['p']; if (isset($_GET['noredir'])) { $noredir = true; @@ -312,23 +318,28 @@ case 'approvecomment': } - if (($_SERVER['HTTP_REFERER'] != "") && (false == $noredir)) { - header('Location: ' . $_SERVER['HTTP_REFERER']); + if ((wp_get_referer() != "") && (false == $noredir)) { + wp_redirect(wp_get_referer()); } else { - header('Location: '. get_settings('siteurl') .'/wp-admin/edit.php?p='.$p.'&c=1#comments'); + wp_redirect(get_settings('siteurl') .'/wp-admin/edit.php?p='.$p.'&c=1#comments'); } break; case 'editedcomment': + $comment_ID = (int) $_POST['comment_ID']; + $comment_post_ID = (int) $_POST['comment_post_ID']; + + check_admin_referer('update-comment_' . $comment_ID); + edit_comment(); $referredby = $_POST['referredby']; if (!empty($referredby)) { - header('Location: ' . $referredby); + wp_redirect($referredby); } else { - header ("Location: edit.php?p=$comment_post_ID&c=1#comments"); + wp_redirect("edit.php?p=$comment_post_ID&c=1#comments"); } break;