Foros del Web » Programando para Internet » PHP »

consulta escapar cadena

Estas en el tema de consulta escapar cadena en el foro de PHP en Foros del Web. Hola. Tengo una duda con estas lineas de codigo. Quiero escapar la cadena antes de guardar lo datos en la base. Las variables $_POST, tienen ...
  #1 (permalink)  
Antiguo 15/12/2010, 11:18
 
Fecha de Ingreso: enero-2010
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 2
consulta escapar cadena

Hola.

Tengo una duda con estas lineas de codigo. Quiero escapar la cadena antes de guardar lo datos en la base.
Las variables $_POST, tienen algun dato introducido por el usuario.
Si solo uso mysql_real_escape_string(), no escapa la cadena, pero si uso addcslashes(), la cadena se escapa sin problemas

¿Porque pasa eso?
¿Es correcto el uso de las funciones planteado como asi?

Código:
$query= sprintf("INSERT INTO usuarios (nom_us, ape_us, nick, pass, email_us, nivel) VALUES('%s', '%s', '%s', '%s', '%s', '%d')", 
	//addcslashes, muestra una barra invertida antes de las caracteres definidos en el segundo parametro de esta función. 
	addcslashes(mysql_real_escape_string($_POST['nom_us']),'%_'),
	addcslashes(mysql_real_escape_string($_POST['ape_us']),'%_'),
	addcslashes(mysql_real_escape_string($_POST['nick_us']),'%_'),
	addcslashes(mysql_real_escape_string($_POST['pass_us']),'%_'),
	addcslashes(mysql_real_escape_string($_POST['email_us']),'%_'),
	$config['nivel']
	);
  #2 (permalink)  
Antiguo 15/12/2010, 12:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: consulta escapar cadena

sería interesante saber si se te ocurrió por un momento leer el manual...

http://php.net/mysql_real_escape_string
http://php.net/addcslashes

del buen uso de ambas funciones destaca su aprendizaje, y es mas, con solo la primer función deberías no tener problemas... pero para usarla bien, hay que aprender a usarla...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 15/12/2010, 12:36
 
Fecha de Ingreso: enero-2010
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: consulta escapar cadena

Si me queres ayudar, hacelo de onda y evita comentarios del estilo " leer el manual...", si pregunto acá es porque ya hice eso, pero tengo dudas.

Lo único que hiciste con el mensaje anterior fue sumar a tu cuenta una rta. que en realidad no me aportó NADA.

Si queres ayudar dame una rta para esto, sino solamente no respondas nada.

Mi problema es justamente que si solo utilizo mysql_real_escape_string(), no se escapa la cadena, los datos se guardan tal como vienen en la variable $_POST, por mas que esta contenga %; _; ó '
  #4 (permalink)  
Antiguo 15/12/2010, 12:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: consulta escapar cadena

bien, bien, asumo que de verdad leíste con calma el manual...

Cita:
mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a.
solo cierto tipo de caracteres se escapan con mysql_real_escape_string() mas no todos... supongo que usas adcslashes() para escapar también % y _ ¿cierto?

bueno, pues ahí es donde metiste la pata... pues leyendo el manual te das cuenta que la primer función no escapa los caracteres que si defines con la segunda función...

la verdad que no entiendo donde tienes problemas...

PDTA: lo hago de buena onda, que conste!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 15/12/2010, 13:09
 
Fecha de Ingreso: enero-2010
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: consulta escapar cadena

Flaco, ahora me re-sirvió la rta.

Ya me quedo todo mucho mas claro.
Tenes razon, en ningun lado el manual de php dice que mysql_real_escape_string(), escapa el % ó _ (y eso que lo mire 20 veces.......)

Por lo que necesito esta funcion addcslashes() para escapar esos caracteres.

Lo que me extraña, es que estoy cansado de leer en Internet que para escapar el % hay que usar mysql_real_escape_string(), cuando en realidad no es cierto.
Supongo que eso fue lo que me confundió.

Recien ahora lo entiendo.


Gracias de verdad.
__________________
Por favor evitar comentarios del estilo "leer el manual...", ya lo hice pero aun tengo dudas, por eso pregunto acá

Etiquetas: escapar, cadenas
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 14:22.