Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:Pólvora mojada

    (Puntos:2)
    por Inconexo (20311) el Viernes, 09 Marzo de 2012, 16:00h (#1303737)
    ( http://press.asqueados.net/ | Última bitácora: Jueves, 06 Marzo de 2014, 11:47h )
    De acuerdo en lo del nombre de la función. Supongo que la motivación de crear una nueva "real" que reemplace la antigua, es porque realmente tiene un comportamiento diferente en algunos casos. Sustituir el comportamiento rompe la compatibilidad hacia atrás.

    Lo de no ponerlo por defecto en el mysql_query por otro lado sí tiene su sentido. Y es que no tienes que escapar toda la consulta, sino simplemente los datos que vengan por entrada de usuario.

    Por poner un ejemplo, esto:

    $producto = mysql_real_escape_string($_REQUEST['producto']);

    $sql = "select id from PRODUCTOS where producto=$producto and categoria='nacional'";

    $res = mysql_query($sql);

    Sería correcto, si no he cometido algún fallo por tener el PHP oxidado. Pero, el siguiente código no funcionaría bien:

    $producto = $_REQUEST['producto'];

    $sql = "select id from PRODUCTOS where producto=$producto and categoria='nacional'";

    $res = mysql_query(mysql_real_escape_string($sql));

    porque se escaparían también las comillas de 'nacional' y eso no sería correcto.

    Ten en cuenta que el objetivo de mysql_real_escape_string es impedir la inyección sql, precisamente previniendo que lo que devuelve se pueda interpretar como órdenes mysql.
    --
    Asqueados [asqueados.net]: mas politica, informatica y payasadas que nunca
    [ Padre ]
    Puntos de inicio:    1  punto
    Modificador por Bonus-Karma   +1  

    Total marcador:   2