Foros del Web » Programando para Internet » PHP »

como validar un nombre de usuario que tenga comillas y otros caracteres?

Estas en el tema de como validar un nombre de usuario que tenga comillas y otros caracteres? en el foro de PHP en Foros del Web. si el nombre de ususario lleva comillas y otrs caracteres ej: '":?}{+_)(*USUARIO&^%$#@!=-|]' como validamos esto a la hora de un login? y, o como se ...
  #1 (permalink)  
Antiguo 31/05/2011, 19:00
Avatar de RichBoy  
Fecha de Ingreso: agosto-2010
Mensajes: 177
Antigüedad: 13 años, 8 meses
Puntos: 7
como validar un nombre de usuario que tenga comillas y otros caracteres?

si el nombre de ususario lleva comillas y otrs caracteres

ej: '":?}{+_)(*USUARIO&^%$#@!=-|]'

como validamos esto a la hora de un login?
y, o como se deveria insertar en la base de datos este tipo de caracteres a la hora de un registro?


Código PHP:
Ver original
  1. $usuario=mysql_real_escape_string($_POST['user']);
  2. $pass=mysql_real_escape_string($_POST['pass']);
  3.  
  4. $query = sprintf("SELECT * FROM usuarios WHERE usuario='%s' AND pass='%s'",
  5.             mysql_real_escape_string($usuario),
  6.             mysql_real_escape_string($pass));
  7.             $result=mysql_query($query);
  8. if ($row = mysql_fetch_array($result))
  9. { echo "ENTRAS";}else{echo "No entras";}    
  10. }
  #2 (permalink)  
Antiguo 31/05/2011, 19:10
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: como validar un nombre de usuario que tenga comillas y otros caracteres?

con expresiones regulares aca un aporte que habla de estas
http://www.forosdelweb.com/f18/aport...s-pcre-646110/, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 31/05/2011, 19:51
Avatar de RichBoy  
Fecha de Ingreso: agosto-2010
Mensajes: 177
Antigüedad: 13 años, 8 meses
Puntos: 7
Respuesta: como validar un nombre de usuario que tenga comillas y otros caracteres?

bueno no entendi del todo la respuesta carlos, lo que pasa que si un usuario se quiere registrar con un nombre de usuario que lleve comillas, como se inserta este en la base de datos?

ejemplo nombre de usuario: '~carlos~'

que, como lo guardarias en la base de datos?

\'~carlos~\' ???
'~carlos~' ???
  #4 (permalink)  
Antiguo 31/05/2011, 19:57
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: como validar un nombre de usuario que tenga comillas y otros caracteres?

personalmente no dejo que coloquen ese tipo de carácteres especiales en los nombres de usuarios por eso te dije lo de las expresiones regulares, ahora que si deseas que se permitan ese tipo de caracteres (cosa que no es aconcejable desde mi punto de vista) puedes utilizar mysql_real_scape_string que te escapa los caracteres especiales al momento de hacer el insert, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 31/05/2011, 20:12
Avatar de RichBoy  
Fecha de Ingreso: agosto-2010
Mensajes: 177
Antigüedad: 13 años, 8 meses
Puntos: 7
Respuesta: como validar un nombre de usuario que tenga comillas y otros caracteres?

si, yo tampoco quisiera pero me gustaria dar la opcion, entonces no se si puedas explicarme cual es la diferencia de poner mysql_real_escape_string fuera de la consulta y dentro de la misma, o repetirla? como en el codigo de abajo

Código PHP:
Ver original
  1. $usuario=mysql_real_escape_string($_POST['user']);
  2. $pass=mysql_real_escape_string($_POST['pass']);
  3.  
  4. $query = sprintf("SELECT * FROM usuarios WHERE usuario='%s' AND pass='%s'",
  5.             mysql_real_escape_string($usuario),
  6.             mysql_real_escape_string($pass));
  7.             $result=mysql_query($query);
  8. if ($row = mysql_fetch_array($result))
  9. { echo "ENTRAS";}else{echo "No entras";}    
  10. }

Etiquetas: comillas, nombre, usuarios
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:50.