Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/04/2006, 10:10
Notwen
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Esta técnica es eficaz, aunque nunca se puede estar seguro de que funcionará en todos los casos.
La idea general de este tipo de funciones es analizar las entradas de los usuarios que van a ser utilizadas en un consulta y "escapar" los caracteres peligrosos que posean estas entradas. PHP dispone de un mecanismo llamado "Magic Quotes" (comillas mágicas) que realiza este trabajo automáticamente. Este mecanismo es general, es decir, no tiene en cuenta el servidor de base de datos que se este utilizando. Por eso, si se encuentra disponible alguna función que realize este trabajo para alguna base de datos en especial (como el caso de mysql_real_escape_string() para bases de datos mysql), es mejor utilizar esta última que la las comillas mágicas.
Pero esto trae un problema: si utilizamos dicha función y comillas mágicas esta activado, obtendremos un doble escape. En la función que publicaste, esto se soluciona utilizando la función stripslashes(), que realiza el proceso invierso al realizado por comillas mágicas. En ese script, primero se verifica que comillas mágicas este activo y si lo esta se aplica la función stripslashes para, ahora si, poder aplicar sin problemas mysql_real_escape_string(). Otra solución sería desactivar comillas mágicas, pero eso sólo lo podés hacer si tenes acceso al php.ini, dado que no es posible a través de ini_set().
Saludos.