Foros del Web » Programando para Internet » PHP »

Escapar en MySQL y las URLs

Estas en el tema de Escapar en MySQL y las URLs en el foro de PHP en Foros del Web. Amigos: estoy en un mar de confusion con como hacer para escapar caracteres. Tengo gente que en formulario usa comillas simples como en l'uomo y ...
  #1 (permalink)  
Antiguo 31/01/2009, 16:53
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Pregunta Escapar en MySQL y las URLs

Amigos: estoy en un mar de confusion con como hacer para escapar caracteres.

Tengo gente que en formulario usa comillas simples como en l'uomo y necesito almacenar eso bien en mi base MySQL pero por otro lado tengo que generar una url donde la comilla simple (') se reemplace por %27 tal como ocurre en Google (?q=l%27uomo)

Esto tiene que darse para todos los posibles caracteres especiales introducidos por los usuarios.....

Estoy medio aturdido porque hay muchas funciones en PHP algunas para MySQL y otras no... y no se cual usar.

Por otro lado no logro entender como es que funciona mysql_real_escape_string - es que hace un reemplazo en el query y luego se envia ? no lo comprendo.

A ver si me ayudan! gracias amigos!

PD: url encode y decode para las urls ?
__________________
Salu2!

Última edición por GatorV; 31/01/2009 a las 19:40
  #2 (permalink)  
Antiguo 31/01/2009, 19:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Escapar en MySQL y las URLs

Hola Italico76,

Usa htmlspecialchars, con esa función puedes traducir los caracteres en sus entidades HTML.

Saludos
  #3 (permalink)  
Antiguo 31/01/2009, 20:10
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Escapar en MySQL y las URLs

Cita:
Usa htmlspecialchars, con esa función puedes traducir los caracteres en sus entidades HTML.
Amigo, te agradezco pero nada que ver con lo que necesito
__________________
Salu2!
  #4 (permalink)  
Antiguo 31/01/2009, 20:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Escapar en MySQL y las URLs

Cierto una disculpa, en ese caso usar urlencode, que sirve para escapar los valores tal como lo indicas (el ejemplo de Google).

Saludos
  #5 (permalink)  
Antiguo 31/01/2009, 21:16
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Escapar en MySQL y las URLs

Voy a probar lo de urlencode() - provisoriamente me valgo de estas funciones:

Código PHP:
 Function limpiar_clave_para_url ($clave){    
    
$salida stripslashes($clave); 
    
$salida str_replace("'",'%27',$salida);
    return 
$salida;
  }
  
  Function 
limpiar_clave_mostrar ($clave){    
    
$salida stripslashes($clave); 
    
$salida str_replace("+",' ',$salida);
    return 
$salida;
  } 
Gracias de nuevo
__________________
Salu2!
  #6 (permalink)  
Antiguo 31/01/2009, 22:49
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Escapar en MySQL y las URLs

mysql_real_escape_string() no altera en nada los datos que se insertan a la consulta. Lo único que hace es escapar ciertos caracteres que de otro modo podrían causar el fallo en alguna consulta, como las comillas simples. Les añade una barra \ delante de ellos, lo que indica que deben ser tomados como caracteres textuales y no como signos. Pero eso es sólo para indicar, pues al guardar los caracteres escapados son insertados sin la barra.

Al extraer estos datos, si los vas a usar para una url, puedes usar urlencode(), como ya te dijo GatorV.

  #7 (permalink)  
Antiguo 01/02/2009, 04:15
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Escapar en MySQL y las URLs

Gracias okram!!!!!!!!!!!!!!!!!!
__________________
Salu2!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:30.