Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (php) [Seleccionar]
        case "1":
            if (isset($_REQUEST['usuario_login']) and isset($_REQUEST['password_login']) and
                strlen($_REQUEST['usuario_login']) > 4 and strlen($_REQUEST['password_login']) >
                4) {
                mysql_query("SET NAMES 'utf8'");
                $usuario = trim($_REQUEST['usuario_login']);
                $password = trim($_REQUEST['password_login']);
                $SQL_login = "SELECT nombre_de_usuario,contraseña,id,permisos FROM usuarios WHERE usuarios.nombre_de_usuario = '$usuario'";
                $SQL_login_query = mysql_query($SQL_login) or die(mysql_error());
                $SQL_login_array = mysql_fetch_array($SQL_login_query);
echo print_r($SQL_login_array);
                if (strtolower($usuario) == strtolower($SQL_login_array['nombre_de_usuario']) and strtolower($password) == strtolower($SQL_login_array['contraseña'])) {

                    $_SESSION['usuario_normal'] = $SQL_login_array['id'];
                   // echo $_SESSION['usuario_normal'];
                    echo "1";

                } else {
                    echo "2";
                }
            }
            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
Cita de: 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.

AHHHHHH. Ahora entiendo.

Prueba a poner esto en su lugar:

Código (php) [Seleccionar]
$SQL_login = "SELECT nombre_de_usuario,contraseña,id,permisos FROM usuarios WHERE usuarios.nombre_de_usuario = '$usuario'";

Código (php) [Seleccionar]
$SQL_login = "SELECT nombre_de_usuario,`contraseña`,id,permisos FROM usuarios WHERE usuarios.nombre_de_usuario = '$usuario'";