Tamaño de letra:
A+ A-
Monoespaciada
Normal
Navegación del curso PHP
 
Funciones II: Retorno de valores
Índice
 
Cookies I : Recordando datos
0 comentarios
2 votos
883 lecturas
Escrito por CHuLoYo

Ejemplo práctico: registro y login de usuarios

Vamos a incluir en este manual un capítulo sobre cómo hacer un registro de usuarios y login con PHP. En este capítulo intentaré explicarlo claramente con todo lo que llevamos aprendido. Vamos a hacerlo muy básico.

Lo primero que necesitamos obviamente es una tabla en mysql llamada usuarios y con campos user y pass como mínimo, formulario de login y un enlace de registro. Todo esto lo pondremos en nuestro index.php:

Código Fuente index.php:
<html>
<head><title>Login de usuarios</title>
</head>
<body>

<form action="login.php" method="POST">
Usuario: <input type="text" name="usuario"><br>
Password: <input type="password" name="pass"><br>
<input type="submit" value="Entrar">
</form>

¿No estás registrado? <a href="registro.php">Regístrate</a>.
</body>
</html>


Bien, ya tenemos nuestro formulario y enlace. Sin mayores complicaciones más que HTML. Ahora crearemos registro.php :

Código Fuente registro.php:
<?php
if($_GET['accion']=="registrar") {

  /*Esto quiere decir que se está enviando el formulario y hay que registrar */

  $user=$_POST['user'];
  $pass1=$_POST['pass1'];
  $pass2=$_POST['pass2'];


  if($pass1==$pass2) {
      /*Si las passwords coindicen registramos:*/

      $conexion = mysql_connect("localhost", "root", "password");

      mysql_select_db("basededatos", $conexion);

      $sql="INSERT INTO usuarios (user, pass) VALUES ('".$user."', '".$pass1."')";

      mysql_query($sql, $conexion) or die ("Error al insertar datos ". mysql_error());

      echo "Registro exitoso<br><a href="index.php">Hacer login</a>";
  } else {
      die("Error, las password no coinciden");
  }
} else { ?><html><head><title>Registro</title></head>
<body>
Formulario de registro de usuarios
<form action="registro.php?accion=registrar" method="POST">
Introduce usuario: <input type="text" name="user"><br>
Introduce password: <input type="password" name="pass1"><br>
Confirma password: <input type="password" name="pass2"><br>

<input type="submit" value="Registrar">
</form>
</body>
</html>
<?php
}
?>


Lo que hemos creado aquí es un formulario en el que el usuario introducirá su nick y dos veces la contraseña para confirmarla. Todo se enviará a la misma página pero con un parámetro GET llamado accion. Por ello comprobamos si nos trae el GET para saber si está enviando el formulario.

Ahora veremos cómo comprobar si el usuario que se intenta loguear es él realmente. Vamos a crear login.php:

Código Fuente login.php:
<?php

$conexion = mysql_connect("localhost", "root", "password");

mysql_select_db("basededatos", $conexion);

if($_POST['user'] && $_POST['pass']) {

    $sql="SELECT * FROM usuarios WHERE user='".$_POST['user']."' AND pass='".$_POST['pass']."'";

    $resultado=mysql_query($sql, $conexion) or die ("Error");

    $numRegistros=mysql_num_rows($resultado);

    if($numRegistros==0) {

        echo "Error, no existen registros que coincidan con tu user y password";

    } else {

        echo "Login exitoso";

    }
} else {

  echo "Introduce user y password para loguearte";

}

?>


En el login existoso incluso se puede poner una cookie para identificar en diferentes páginas al usuario.

El ejemplo es bien sencillo, se comprueba que se hayan introducido tanto el user como el password en el formulario de login, y luego se hace una consulta con esos valores. Si mysql devuelve cero en número de registros, quiere decir que no existen registros que contengan ese user y password simultáneamente, con lo que hay une rror, en caso contrario se hace exitoso el login.

Muy sencillo y para toda la familia!

Saludos.



Comentarios: (Nuevo)


No puedes comentar como anónimo. Regístrate para disfrutar de toda la web.