13Nov 2011 0 Comments */?>

WordPress y PHP Magic Quotes

Categorías: Tips de wordpress, Tutoriales, Wordpress - Tags:

Estoy trabajando con un cliente que necesita un search engine capaz de indexar pdf y documentos de word dentro de su wordpress y me encontré con que cuando quería realizar una búsqueda exacta como por ejemplo “text de búsqueda” , las comillas aparecían escapas en el formulario \” produciendo así un error en mi código de búsqueda.
Lo primero que pense es que tenía las magic_quotes de PHP habilitadas, cosa que no necesitaba para nada y que encima de ya estar obsoleta será removido por completo en PHP 6.
Así que después de deshabilitar en mi php.ini los magic_quotes me dispuse a probar nuevamente mi código y ¡OH Sorpresa! , seguía sucediendo lo mismo. He aquí que me puse a investigar y efectivamente WordPress hace la tarea de magic_quotes por si solo.

$_REQUEST es básicamente la union de las variables $_GET y $_POST y puede que tenga o no magic_quotes , para usarla debemos utilizar la función “magic_quote_gpc()”.

$_GET, $_POST, $_COOKIE y $_SERVER están saneadas por lo que debemos usar strip_slashes.

Ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if ( get_magic_quotes_gpc() ) {
$_GET    = stripslashes_deep($_GET);
$_POST   = stripslashes_deep($_POST);
$_COOKIE = stripslashes_deep($_COOKIE);
}
 
// Escape con wpdb.
$_GET    = add_magic_quotes($_GET   );
$_POST   = add_magic_quotes($_POST  );
$_COOKIE = add_magic_quotes($_COOKIE);
$_SERVER = add_magic_quotes($_SERVER);
 
//$_REQUEST es básicamente
 
$_REQUEST = array_merge($_GET, $_POST);
 
//Por lo que no sabemos si realmente tiene los valores saneados o no así que podemos usar la función de wordpress stripslashes_deep()

Saludos!!

Damián Logghe

Programador freelancer y emprendedor en sueños. Contento de ser mi jefe y poder hacer lo que me gusta. WordPress es mi principal fuente de ingreso y me escribo tanto para ayudar como para tener una guia de memoria. Quieres contratarme? Déjame un mensaje.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus