Clever, Muy bueno tu comentario! Solo una pequeña observación sobre esta parte, que es incorrecta:
> $variable = addslashes($_POST['variable']); // Es totalmente seguro sin > importar el valor de magic_quotes_gpc Entiendo que hacer addslashes() hace más seguro lo que se reciba por GET/POST/COOKIES sin importar el estado de magic_quotes_gpc -- sin embargo hay un efecto secundario. Si magic_quotes_gpc estuviese activo y PHP automáticamente escapa la entrada GPC con backslashes, entonces hacer un addslashes va a agregarme *otros* backslashes adicionales. Ejemplo: Se recibe del usuario: "Todos compran con la Manolo's card" PHP opera con magic_quotes_gpc: "Todos compran con la Manolo\'s card" Luego hacemos un addslashes(): "Todos compran con la Manolo\\'s card" El efecto es que addslashes() añade otro backslash al backslash que magic_quotes_gpc agregó previamente. La solución transparente es actuar activamente de acuerdo a la configuración de magic_quotes_gpc. A continuación copio y pego una pequeña librería que hace esto. NOTA IMPORTANTE: lo que hace este script es dejar las cadenas SIN BACKSLASHES, sin importar la configuración de magic_quotes_gpc. Yo escapo automágicamente las cadenas cuando trabajo con la DB. Si se quiere el efecto contrario (que nuestras cadenas tengan backslashes sin importar la configuración de magic_quotes_gpc), habría que reemplazar "stripslashes" por "addslashes" en el código. Para usarla, basta incluirla al principio de nuestros scripts (o script global de configuración, o del framework que usemos): -------------------------------------------------------------------------------- <?php // This is a transparent fix for PHP's Magic Quotes. I *always* work with // Magic Quotes OFF, and I expect my scripts to work that way, so this script // strips slashes to GPC if Magic Quotes is enabled. // // Based on code written by Simon Willison, which is Public Domain. // http://scripts.incutio.com/magic_quotes/ function stripslashes_recursive ($value) { if (is_array ($value)) { foreach ($value as $index => $val) { $value[$index] = stripslashes_recursive ($val); } return $value; } else { return stripslashes ($value); } } if (get_magic_quotes_gpc ()) { $_GET = stripslashes_recursive ($_GET); $_POST = stripslashes_recursive ($_POST); $_COOKIE = stripslashes_recursive ($_COOKIE); $_REQUEST = stripslashes_recursive ($_REQUEST); } ?> -------------------------------------------------------------------------------- Basta incluir este script y... eso es todo. Podemos despreocuparnos por completo de este asunto. Después de todo, la computadora está para hacernos las cosas fáciles, verdad? :) -- Jaime G. Wong Chacaltana [EMAIL PROTECTED] Coordinador _______________________________________________ Lista de correo Linux-plug Temática: Discusión general sobre Linux Peruvian Linux User Group (http://www.linux.org.pe) Participa suscribiéndote y escribiendo a: [email protected] Para darte de alta, de baja o hacer ajustes a tu suscripción visita: http://www.linux.org.pe/cgi-bin/mailman/listinfo/linux-plug IMPORTANTE: Reglas y recomendaciones http://www.linux.org.pe/listas/reglas.php http://www.linux.org.pe/listas/comportamiento.php http://www.linux.org.pe/listas/recomendaciones.php
