Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: octavioxd en 25 Noviembre 2014, 11:57 am



Título: Problema de codificacion
Publicado por: octavioxd en 25 Noviembre 2014, 11:57 am
Tengo un problema al relizar una consulta y no se como resolverlo

Código
  1.        case "1":
  2.            if (isset($_REQUEST['usuario_login']) and isset($_REQUEST['password_login']) and
  3.                strlen($_REQUEST['usuario_login']) > 4 and strlen($_REQUEST['password_login']) >
  4.                4) {
  5.                mysql_query("SET NAMES 'utf8'");
  6.                $usuario = trim($_REQUEST['usuario_login']);
  7.                $password = trim($_REQUEST['password_login']);
  8.                $SQL_login = "SELECT nombre_de_usuario,contraseña,id,permisos FROM usuarios WHERE usuarios.nombre_de_usuario = '$usuario'";
  9.                $SQL_login_query = mysql_query($SQL_login) or die(mysql_error());
  10.                $SQL_login_array = mysql_fetch_array($SQL_login_query);
  11. echo print_r($SQL_login_array);
  12.                if (strtolower($usuario) == strtolower($SQL_login_array['nombre_de_usuario']) and strtolower($password) == strtolower($SQL_login_array['contraseña'])) {
  13.  
  14.                    $_SESSION['usuario_normal'] = $SQL_login_array['id'];
  15.                   // echo $_SESSION['usuario_normal'];
  16.                    echo "1";
  17.  
  18.                } else {
  19.                    echo "2";
  20.                }
  21.            }
  22.            break;

Me arroja el error "Invalid utf8 character string: 'ña'" poruqe en la consulta uno de los campos se llama contraseña y al tener la ñ arroja el error


Título: Re: Problema de codificacion
Publicado por: MinusFour en 25 Noviembre 2014, 16:03 pm
Lo mas probable es que tu tabla está en latin1_swedish_ci (ISO-8859). Tienes que cambiarla a UTF-8.


Título: Re: Problema de codificacion
Publicado por: Hadess_inf en 26 Noviembre 2014, 22:21 pm
Lo mejor que puedes hacer al diseñar una BD es no usar caracteres especiales (como la ñ "eñe") ... podrias usar:

- contrasena
- contrasenia

Saludos.


Título: Re: Problema de codificacion
Publicado por: MinusFour en 27 Noviembre 2014, 15:59 pm
Lo mejor que puedes hacer al diseñar una BD es no usar caracteres especiales (como la ñ "eñe") ... podrias usar:

- contrasena
- contrasenia

Saludos.

AHHHHHH. Ahora entiendo.

Prueba a poner esto en su lugar:

Código
  1. $SQL_login = "SELECT nombre_de_usuario,contraseña,id,permisos FROM usuarios WHERE usuarios.nombre_de_usuario = '$usuario'";

Código
  1. $SQL_login = "SELECT nombre_de_usuario,`contraseña`,id,permisos FROM usuarios WHERE usuarios.nombre_de_usuario = '$usuario'";