2014-04-15 2 views
0

После вопроса: With "magic quotes" disabled, why does PHP/Wordpress continue to auto-escape my POST data?получить un espeded POST, а не магические цитируемые значения в wordpress?

В WordPress все Суперглобальные являются espaced даже если волшебные кавычки от

Итак, после этого ответа: https://stackoverflow.com/a/8949871/1334268

Если я создаю плагин и класс для доступа к сырым POST, GET и т. Д., Это хорошее решение? видите ли вы какие-либо недостатки, какие бы проблемы ни возникали при таком подходе. Вот мой плагин ниже:

class MyPluginRequest{ 
    public static function getPost($key){ 
     global $_REAL_POST; 
     return isset($_REAL_POST[ $key ])? $_REAL_POST[ $key ] : FALSE ; 
    } 
} 

// A hack to cope with un-configurable call to wp_magic_quotes 
// E.G. Make the original $_POST available through a global $_REAL_POST 
global $_REAL_GET, $_REAL_POST, $_REAL_COOKIE, $_REAL_REQUEST; 
$_REAL_GET  = $_GET; 
$_REAL_POST = $_POST; 
$_REAL_COOKIE = $_COOKIE; 
$_REAL_REQUEST = $_REQUEST; 

то я использую MyPluginRequest::getPost('submit'); каждый раз мне нужно отправили неэкранированное значение.

Действительно ли $wpdb->escape ожидает уже заданного значения заклинания или неизолированного?

ответ

1

Похоже, что он должен работать нормально. В последней часть вопроса я считаю $wpdb->escape осуждаются, за блок комментария

/** 
* Do not use, deprecated. 
* 
* Use esc_sql() or wpdb::prepare() instead. 
* 
* ... 

Глядя через WordPress код, чтобы определить, если wpdb::prepare ожидает магическое цитируемое значение приводит нас в трясину жуткой коды в.ч. ...> bites tounge <

Похоже, что он ожидает строки, не содержащие магии, для меня, но есть шанс, что она не удвоится, если вы передадите ей волшебную строку со строкой, хотя я бы проверил с тестом.

+0

Просто установив тест, мне захотелось выбить мои мозги; код Wordpress является одним из самых худших, что я видел в странах с открытым исходным кодом. – quickshiftin

+0

lol wpdb :: prepare ожидает магические цитируемые значения? Я копался в некоторых кодах ... yup это кошмар ... wp_insert_post ожидает escape-значений. wpdb-> insert, update, delete не ожидает escape-значений ... man я должен прочитать каждую функцию, которую я использую, чтобы определить, сбежать или нет? есть ли где-нибудь список? – yeahman

+0

Возможно, вам нужно найти IRC-канал wordpress для разработчиков или что-то в этом роде. Эти ребята должны быть в состоянии ответить на эти вопросы с большей готовностью. – quickshiftin