Mi administrador de servidor actualizó recientemente a PHP 5.3 y obtengo un "error" extraño (o feature, como lo tienen los usuarios de PHP). Tenía mysql_real_escape_string
alrededor de la mayoría de mis datos de formularios por razones obvias de seguridad, pero ahora parece que PHP ya ha escapado.
<?php
echo $_GET["escaped"];
?>
<form method="get">
<input type="text" name="escaped" />
</form>
Este salidas, si entro por ejemplo escape 'this test'
, escape \'this test\'
. Lo mismo ocurre si uso POST
en lugar de GET
.
¿Está directamente relacionado con la actualización 5.3 o podría mi administrador haber activado algún cambio automático en el archivo php.ini?
Además, debería dejarlo tal como está (en el caso de que sea un buen mecanismo a prueba de fallas que atrape correctamente todas las variables get y post), o debería deshabilitarlo (¡si eso es posible!) E ir volver a mysql_real_escape_string
? Mis agallas me dicen que el enfoque 2 sería lo mejor, pero el enfoque 1 sería algo automágico. :)
EDITAR: En realidad, necesito deshabilitarlo. A veces reúno los datos del formulario y lo vuelvo a enviar al formulario del cliente en caso de que algo esté mal (es decir, campo faltante), así que no quiero que tenga barras que aparezcan de la nada.
También debe tenerse en cuenta que, si su archivo 'php.ini' contiene un error de sintaxis, el valor predeterminado es habilitar' magic_quotes_gpc'. Por lo tanto, si cree que ha desactivado 'magic_quotes_gpc' en su archivo de configuración, es posible que el archivo contenga un error que impida que se aplique su configuración. Experiencia personal. : P –