From 537b91b58254df8a43650038ebc51bde8939f2fd Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Wed, 6 Jul 2005 01:12:38 +0000 Subject: [PATCH] Stripslashes doesn't work on arrays. Add stripslashes_deep(). Props: Mike Little git-svn-id: https://develop.svn.wordpress.org/trunk@2700 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/functions-formatting.php | 10 ++++++++++ wp-settings.php | 8 ++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/wp-includes/functions-formatting.php b/wp-includes/functions-formatting.php index fa8a4e5840..3ad94f5dfc 100644 --- a/wp-includes/functions-formatting.php +++ b/wp-includes/functions-formatting.php @@ -532,6 +532,16 @@ function addslashes_gpc($gpc) { return $wpdb->escape($gpc); } + +function stripslashes_deep($value) +{ + $value = is_array($value) ? + array_map('stripslashes_deep', $value) : + stripslashes($value); + + return $value; +} + function antispambot($emailaddy, $mailto=0) { $emailNOSPAMaddy = ''; srand ((float) microtime() * 1000000); diff --git a/wp-settings.php b/wp-settings.php index 86db740bfd..7439c63b16 100644 --- a/wp-settings.php +++ b/wp-settings.php @@ -138,10 +138,10 @@ require_once(ABSPATH . WPINC . '/locale.php'); // If already slashed, strip. if ( get_magic_quotes_gpc() ) { - $_GET = stripslashes($_GET ); - $_POST = stripslashes($_POST ); - $_COOKIE = stripslashes($_COOKIE); - $_SERVER = stripslashes($_SERVER); + $_GET = stripslashes_deep($_GET ); + $_POST = stripslashes_deep($_POST ); + $_COOKIE = stripslashes_deep($_COOKIE); + $_SERVER = stripslashes_deep($_SERVER); } // Escape with wpdb.