Regresar a la página www.ComoCrearTuWeb.com
Página 1 de 4 1234 ÚltimoÚltimo
Resultados 1 al 15 de 51

Tema: Problema con sistema de login de usuarios

  1. #1
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17

    [SOLUCIONADO] Problema con sistema de login de usuarios

    Hola!

    Bueno, estaba haciendo un sistema de registro y el problema es que al loguearme me da error, aquí tenéis los códigos:

    registro.html (No da error)
    Código:
    <html> 
    <head> 
    <title>Registo | Doodleo</title> 
    <link rel="stylesheet" href="/estilos.css" type="text/css" media="all"> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    </head> 
    <script type="text/javascript"> 
    function setFocus(aField) {
    document.forms[0][aField].focus();
    }
     
    function isAnEmailAddress(aTextField) {
     
    if (document.forms[0][aTextField].value.length<5) {
    return false;
    }
    else if (document.forms[0][aTextField].value.indexOf("@") < 1) {
    return false;
    }
    else if (document.forms[0][aTextField].value.length -
     document.forms[0][aTextField].value.indexOf("@") < 4) {
    return false;
    }
    else { return true; }
    }
     
    function isEmpty(aTextField) {
    if ((document.forms[0][aTextField].value.length==0) ||
     (document.forms[0][aTextField].value==null)) {
    return true;
    }
    else { return false; }
    }
    function validate() {
     
    if (isEmpty("USUARIO")) {
    	alert("Por favor introduce un nombre de usuario.");
    	setFocus("USUARIO");
    	return false;
    }
    if (isEmpty("CONTRASEÑA")) {
    	alert("Por favor introduce una contraseña.");
    	setFocus("CONTRASEÑA");
    	return false;
    }
    if (!isAnEmailAddress("EMAIL")) {
    	alert("El email introducido no es válido.");
    	setFocus("EMAIL");
    	return false;
    }
    return true;
     
    }
    </script> 
    <body> 
    <div id="global"> 
     
    <!-- Inicio cabecera --> 
    <div id="cabecera"><img src="/imagenes/cabecera2.jpg" /></div> 
    <!-- Fin cabecera --> 
    <br /> 
    <div id="contenido"> 
    <form action="registro.php" method="post" onSubmit="return validate()"> 
    <label><b>Nombre de usuario:</b> <input type="text" name="USUARIO" size="30"></label> 
    <br /><br /> 
    <label><b>Contraseña: <input type="password" name="CONTRASEÑA" size="30"></label> 
    <br /><br /> 
    <label><b>Email:</b> <input type="text" name="EMAIL" size="30"></label> 
    <br /><br /> 
    <button type="submit">Completar el registro</button> 
    </form> 
    </div> 
    <br /> 
    <div id="pie">Doodleo - <a href="http://comocreartuweb.com" target="_blank">CCTW</a></div> 
    </div> 
    </body> 
    </html>

    registro.php (No da error)
    Código:
    <html>
    <head>
    <title>Registro | Doodleo</title>
    <link rel="stylesheet" href="/estilos.css" type="text/css" media="all">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
    <?php 
    
    include("config.php"); 
    
    // Conexión con el servidor
    $link = mysql_connect($server, $db_user, $db_pass)
    or die ("No se ha podido conectar al servidor porque ".mysql_error());
    
    // Selección de la base de datos
    mysql_select_db($database)
    or die ("Error al seleccionar la base de datos porque ".mysql_error());
    
    // Revisar si el nombre de usuario ya se encuentra en la base de datos
    $check = "select id from $table where USUARIO = '".$_POST['USUARIO']."';"; 
    $qry = mysql_query($check)
    or die ("Could not match data because ".mysql_error());
    $num_rows = mysql_num_rows($qry); 
    if ($num_rows != 0) {
    echo "¡Vaya! parece que el nombre de usuario <b>$USUARIO</b> ya está siendo usado.<br />";
    echo "Prueba otra vez a registrarte!";
    exit; 
    } else {
    
    // Registrar usuario en la base de datos
    $insert = mysql_query("insert into $table values ('NULL', '".$_POST['USUARIO']."', '".$_POST['CONTRASEÑA']."', '".$_POST['EMAIL']."', 'images/avatar.jpg')")
    or die("Could not insert data because ".mysql_error());
    
    // Imprimir mensaje en pantalla indicando que el registro se completó
    echo "Tu cuenta se ha creado correctamente!<br>"; 
    echo "Ahora puedes <a href=login.html>loguearte</a>!"; 
    }
    
    ?>
    </body>
    </html>
    login.html (No da error)
    Código:
    <html>
    <head>
    <title>Login | Doodleo</title> 
    <link rel="stylesheet" href="/estilos.css" type="text/css" media="all"> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <style type="text/css">
    #formulariologin {
    border: 3px solid green; 
    padding: 10px;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    }
    #formulariocontraseña {
    border: 3px solid green;
    padding: 10px;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    }
    </style> 
    </head>
    <script type="text/javascript">
    function setFocus(aField) {
    document.forms[0][aField].focus();
    }
    
    function isAnEmailAddress(aTextField) {
    
    if (document.forms[0][aTextField].value.length<5) {
    return false;
    }
    else if (document.forms[0][aTextField].value.indexOf("@") < 1) {
    return false;
    }
    else if (document.forms[0][aTextField].value.length -
     document.forms[0][aTextField].value.indexOf("@") < 4) {
    return false;
    }
    else { return true; }
    }
    
    function isEmpty(aTextField) {
    if ((document.forms[0][aTextField].value.length==0) ||
     (document.forms[0][aTextField].value==null)) {
    return true;
    }
    else { return false; }
    }
    
    function validate() {
    
    if (isEmpty("USUARIO")) {
    	alert("Introduce tu nombre de usuario.");
    	setFocus("USUARIO");
    	return false;
    }
    if (isEmpty("CONTRASEÑA")) {
    	alert("Introduce tu contraseña.");
    	setFocus("CONTRASEÑA");
    	return false;
    }
    return true;
    
    }
    </script>
    <body>
    <div id="global">
    <div id="cabecera"><img src="imagenes/cabecera2.jpg"></div>
    <div id="contenido">
    <form action="login.php" method="post" onSubmit="return validate()">
    Usuario: <input type="text" name="USUARIO" size="20">
    <br /><br />
    Contraseña: <input type="password" name="CONTRASEÑA" size="20">
    <br />
    <button type="submit">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</button>
    </form>
    </div>
    <br /><br />
    <div id="formulariocontraseña">
    <form action="forgotpass.php" method="post" onSubmit="return validateresendpass()">
    <strong><u>Recuperar contraseña</u></strong><br /><br />
    Usuario: <input type="text" name="usuarioo" size="20"><br /><br />
    <button type="submit">Reenviar contraseña</button>
    </form>
    </div>
    <br /><br />
    </div>
    <br />
    <div id="pie">Doodleo - <a href="http://comocreartuweb.com">CCTW</a></div>
    </div>
    </body>
    </html>
    Los &nbsp; del botón de envío son para que el botón sea más ancho, no es ningún error xD

    login.php (Sí da error)
    Código:
    <html> 
    <head> 
    <title>Doodleo - CCTW</title> 
    <link rel="stylesheet" href="/estilos.css" type="text/css" media="all"> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    </head>
    <body>
    <?php
    ob_start();
    
    include("config.php"); 
    
    // Conexión con el servidor
    $link = mysql_connect($server, $db_user, $db_pass) 
    or die ("Could not connect to mysql because ".mysql_error()); 
    
    // Conexión con la base de datos
    mysql_select_db($database) 
    or die ("Could not select database because ".mysql_error()); 
    
    $match = "select id from $table where USUARIO = '".$_POST['USUARIO']."' 
    and password = '".$_POST['CONTRASEÑA']."';";
    
    $qry = mysql_query($match) 
    or die ("Could not match data because ".mysql_error()); 
    $num_rows = mysql_num_rows($qry); 
    
    if ($num_rows <= 0) { 
    echo "¡Vaya! El usuario <strong>".$_POST['USUARIO']."</strong> no existe o has escrito mal la contraseña<br />"; 
    echo "<a href=login.html>Inténtalo de nuevo</a>"; 
    exit;
    
    } else { 
    
    setcookie("loggedin", "".$_POST['USUARIO']."", time()+(3600 * 24));
    echo "Bienvenido <strong>".$_POST['USUARIO']."</strong><br />"; 
    echo "Vuelve al inicio y disfruta de las nuevas opciones de ser un usuario registrado!"; 
    }
    ob_end_flush();
    ?>
    </body>
    </html>
    Y el error me lo da al intentar loguearme, el error es:
    Código:
    Could not match data because Unknown column 'password' in 'where clause'

    Los campos de la base de datos son:
    Última edición por Doodleo; 10/07/2011 a las 20:59

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,043
    Poder de Reputación
    21
    Hola, lo que pasa es que en el archivo login escribiste: "select id from $table where USUARIO = '".$_POST['USUARIO']."' and password = '".$_POST['CONTRASEÑA']."';" y si te fijas bien, la columna password no existe en la tabla (según lo que has mostrado en la fotografía). En tu caso debes cambiar password por CONTRASEÑA, que sí es una columna válida.

    Saludos.

  3. #3
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    Sí, lo que imaginaba, ya había probado eso pero me da otro error al hacer ese cambio:
    Código:
    Could not match data because You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '‘A = ''' at line 2
    De momento login.php queda así:
    Código:
    <html> 
    <head> 
    <title>Doodleo - CCTW</title> 
    <link rel="stylesheet" href="/estilos.css" type="text/css" media="all"> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    </head>
    <body>
    <?php
    ob_start();
    
    include("config.php"); 
    
    // Conexión con el servidor
    $link = mysql_connect($server, $db_user, $db_pass) 
    or die ("Could not connect to mysql because ".mysql_error()); 
    
    // Conexión con la base de datos
    mysql_select_db($database) 
    or die ("Could not select database because ".mysql_error()); 
    
    $match = "select id from $table where USUARIO = '".$_POST['USUARIO']."' 
    and CONTRASEÑA = '".$_POST['CONTRASEÑA']."';";
    
    $qry = mysql_query($match) 
    or die ("Could not match data because ".mysql_error()); 
    $num_rows = mysql_num_rows($qry); 
    
    if ($num_rows <= 0) { 
    echo "¡Vaya! El usuario <strong>".$_POST['USUARIO']."</strong> no existe o has escrito mal la contraseña<br />"; 
    echo "<a href=login.html>Inténtalo de nuevo</a>"; 
    exit;
    
    } else { 
    
    setcookie("loggedin", "".$_POST['USUARIO']."", time()+(3600 * 24));
    echo "Bienvenido <strong>".$_POST['USUARIO']."</strong><br />"; 
    echo "Vuelve al inicio y disfruta de las nuevas opciones de ser un usuario registrado!"; 
    }
    ob_end_flush();
    ?>
    </body>
    </html>

  4. #4
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    Quizás no reconozca la eÑe? Igual es una chorrada lo que digo.... pero por probar...

  5. #5
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    REvisa por si te sobra algo del final en:

    $match = "select id from $table where USUARIO = '".$_POST['USUARIO']."' and CONTRASEÑA = '".$_POST['CONTRASEÑA']."' ; ";
    No te sobra el punto y coma coloreado en rojo?

  6. #6
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    No Jorgens, he probado pero sigue dándome el mismo error que le dije a skaparate, en la línea 2 pone
    Código:
    Could not match data because You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '‘A = ''' at line 2

  7. #7
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    En cualquier caso parece que eso sobra, no? No cuadra bajo mi punto de vista.

    El error te marca
    '‘A = '''
    A qué se refiere? No tienes ninguna A mayúscula con esos signos alrededor. No será la Ñ?

  8. #8
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10

  9. #9
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    Pruebo a quitar la ñ a la DB y a los campos y os cuento!

  10. #10
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    Se que para ponder añadir "valores" con eñes dentro de un campo hay que definir el cotejamiento correcto. Pero para el propio nombre del campo no tengo nada claro. De todas formas, por intentarlo...

  11. #11
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    Muchísimas gracias Jorgens, al final era la Ñ jajaja

    Ahora tengo un problema... cuando hago el login no me encuentra el usuario, me dice que el usuario no existe cuando SÍ existe en la DB :S

    igualmente ya he solucionado ese error, mañana miro el código que ya me duermo! jejeje

  12. #12
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    Oki, lo miramos mañana, que ya es hora! ja ja ja

    Genial lo de la eñe, a ver si recuerdo aclararlo en el curso de php y así lo voy mejorando.

    Me lo he pasado bien hoy contigo ;=) Un abrazo!

  13. #13
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    No habrás llamado ANTOÑO al usuario? ja ja ja

    Un abrazo!

  14. #14
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,043
    Poder de Reputación
    21
    No habrás llamado ANTOÑO al usuario? ja ja ja
    Jajajaja XD. Como dice Jorgens, debes asegurarte de utilizar el tipo correcto de cotejamiento. Los que generalmente funcionan para el español son utf8_bin/ci, latin1_spanish_bin/ci o latin1_bin/ci (ci, case insensitive).

  15. #15
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    No, el usuario se llama Doodleo jejeje

    Voy a probar a modificar el cotejamiento y os cuento! gracias por todo!

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •