Cuando mi script PHP recibe datos de una solicitud AJAX POST, se escapan las variables $_POST
. Lo realmente extraño es que esto solo ocurre en mi servidor de producción (ejecutando PHP 5.2.12 en Linux) y no en mi servidor local (ejecutando PHP 5.3.1 en Windows). no
var pageRequest = false;
if(window.XMLHttpRequest) pageRequest = new XMLHttpRequest();
else if(window.ActiveXObject) pageRequest = new ActiveXObject("Microsoft.XMLHTTP");
pageRequest.onreadystatechange = function() { }
var q_str = 'data=' + " ' ";
pageRequest.open('POST','unnamed_page.php',true);
pageRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
pageRequest.setRequestHeader("Content-length", q_str.length);
pageRequest.setRequestHeader("Connection", "close");
pageRequest.send(q_str);
alguna razón esto está sucediendo:
Aquí está el código AJAX? ¿Y cómo debería solucionar esto para que funcione en ambos servidores?
Editar: Tengo la siguiente configuración para magic_quotes:
Local Master
magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
Y esto no romperá mi locales Servidor? Solo quiero asegurarme de obtener esto ... –
@George si haces el control como se describe, funcionará con tu servidor local, porque 'get_magic_quotes_gpc()' volverá falso allí, y no se quitarán barras. Pruébelo, haga una prueba de salida de la función. Pero lo mejor sería desactivar las comillas mágicas en la máquina de Linux. Puede hacer un 'phpinfo()', le dirá qué está habilitado y qué no . –
@George esta era una medida de seguridad para evitar las inyecciones de SQL escapando automáticamente los datos relevantes con barras. No es una mala idea, básicamente, pero nunca atrapó y finalmente se convirtió en una molestia, como lo ilustra tu caso. –