Foros del Web » Programando para Internet » PHP »

Usuario y contraseña que contienen Ñ

Estas en el tema de Usuario y contraseña que contienen Ñ en el foro de PHP en Foros del Web. Hola a todos, Me dirijo a vosotros después de haber estado buscando en el foro y no haber encontrado la respuesta. Tengo una aplicación de ...
  #1 (permalink)  
Antiguo 25/03/2007, 15:59
 
Fecha de Ingreso: marzo-2004
Ubicación: Sureste
Mensajes: 186
Antigüedad: 20 años
Puntos: 0
Usuario y contraseña que contienen Ñ

Hola a todos,

Me dirijo a vosotros después de haber estado buscando en el foro y no haber encontrado la respuesta.

Tengo una aplicación de usuario/contraseña en PHP 4 y MySQL MySQL 4.0.26-nt y al registrarse un usuario cuyo nombre empieza con ñ y cuya contraseña contiene ñ también, no permite el registro. Creo que debe ser algo relativo a los caracteres especiales pero no sé cómo cambiar la codificación o cómo hacerlo.

¿Qué tendría que hacer para resolverlo?

Gracias,
Kailea.
  #2 (permalink)  
Antiguo 25/03/2007, 18:16
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 7 meses
Puntos: 7
Re: Usuario y contraseña que contienen Ñ

Mostrar aquí, por lo menos, parte del código...

El tema de los caracteres especiales, no debería ser el problema... salvo que tengas algo, en tu código que esté revisando eso...
__________________
Gracias de todas todas
-----
Linux!
  #3 (permalink)  
Antiguo 26/03/2007, 03:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 33
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Usuario y contraseña que contienen Ñ

El problema lo más seguro es que venga derivado de la base de datos, de la codificación con la que esté configurada. Échale un ojo a eso a ver... prueba igualmente a volcar las cosas en UTF8, y acostumbra a usar mysql_escape_string / mysql_real_escape_string (ambas iguales, según la versión de PHP). A la hora de insertar registros en la base de datos, yo haría lo siguiente:

Código PHP:
$user utf8_encode(mysql_escape_string($user));
$pass utf8_encode(mysql_escape_string($pass)); 
Y para mostrar registros:

Código PHP:
$user utf8_decode($row['user']);
$pass utf8_decode($row['pass']); 
Con esto consigues una codificación estándar UTF8. Y el tema de las Ñ en la contraseña, decirte que por lo general, se suele registrar la contraseña encriptada, no en texto plano, haciendo la comparación en el login de la real y la propuesta por el usuario, ya encriptadas. Por ejemplo, a la hora de insertar

Código PHP:
$pass md5(mysql_escape_string($pass)); 
Y a la hora del login:

Código PHP:
if ($row['pass'] == md5($_POST['pass'])) 
Espero que algo te haya servido :)
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 19:15.