Tutorial básico: cómo crear un sistema de login en PHP y MySQL

Aprende paso a paso cómo crear un sistema básico de inicio de sesión usando PHP y MySQL. Descubre cómo registrar usuarios, validar credenciales y manejar sesiones de forma sencilla y segura.

Tutorial básico: cómo crear un sistema de login en PHP y MySQL

Uno de los módulos más importantes en cualquier aplicación web es el sistema de autenticación de usuarios.

Los sistemas de login permiten controlar el acceso a paneles administrativos, plataformas empresariales, sistemas académicos, tiendas virtuales y muchas otras aplicaciones.

En este tutorial aprenderás cómo crear un sistema básico de login utilizando PHP y MySQL.


✅ Paso 1: Crear la base de datos

Primero debes crear una base de datos en MySQL.

CREATE DATABASE sistema_login CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

✅ Paso 2: Crear la tabla de usuarios

Ahora crea una tabla para almacenar los usuarios.

CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    email VARCHAR(150) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    fecha_registro DATETIME DEFAULT CURRENT_TIMESTAMP
);

✅ Paso 3: Crear la conexión a MySQL

Crea un archivo llamado conexion.php.

<?php

$host = "localhost";
$dbname = "sistema_login";
$user = "root";
$password = "";

try {

    $pdo = new PDO(
        "mysql:host=$host;dbname=$dbname;charset=utf8mb4",
        $user,
        $password
    );

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

    die("Error de conexión");

}

?>

✅ Paso 4: Crear formulario de registro

Crea un archivo llamado registro.php.

<form method="POST">

    <input type="text" name="nombre" placeholder="Nombre" required>

    <input type="email" name="email" placeholder="Correo" required>

    <input type="password" name="password" placeholder="Contraseña" required>

    <button type="submit">Registrarse</button>

</form>

✅ Paso 5: Guardar usuarios en la base de datos

Ahora procesaremos el formulario para registrar usuarios.

<?php

require_once "conexion.php";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $nombre = $_POST["nombre"];
    $email = $_POST["email"];

    $password = password_hash($_POST["password"], PASSWORD_DEFAULT);

    $sql = "INSERT INTO usuarios(nombre, email, password)
            VALUES(:nombre, :email, :password)";

    $stmt = $pdo->prepare($sql);

    $stmt->execute([
        ":nombre" => $nombre,
        ":email" => $email,
        ":password" => $password
    ]);

    echo "Usuario registrado correctamente.";

}

?>

La función password_hash() protege la contraseña antes de guardarla.


✅ Paso 6: Crear formulario de login

Crea un archivo llamado login.php.

<form method="POST">

    <input type="email" name="email" placeholder="Correo" required>

    <input type="password" name="password" placeholder="Contraseña" required>

    <button type="submit">Ingresar</button>

</form>

✅ Paso 7: Validar acceso del usuario

Ahora agregaremos la validación del login.

<?php

session_start();

require_once "conexion.php";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $email = $_POST["email"];
    $password = $_POST["password"];

    $sql = "SELECT * FROM usuarios WHERE email = :email";

    $stmt = $pdo->prepare($sql);

    $stmt->execute([
        ":email" => $email
    ]);

    $usuario = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($usuario && password_verify($password, $usuario["password"])) {

        $_SESSION["usuario_id"] = $usuario["id"];
        $_SESSION["usuario_nombre"] = $usuario["nombre"];

        echo "Bienvenido " . $usuario["nombre"];

    } else {

        echo "Correo o contraseña incorrectos.";

    }

}

?>

✅ Paso 8: Proteger páginas privadas

Para evitar accesos no autorizados, puedes proteger las páginas verificando la sesión.

<?php

session_start();

if (!isset($_SESSION["usuario_id"])) {

    header("Location: login.php");
    exit;

}

?>

✅ Paso 9: Cerrar sesión

Crea un archivo llamado logout.php.

<?php

session_start();

session_destroy();

header("Location: login.php");

exit;

?>

💡 Recomendaciones importantes

  • Usa siempre password_hash() y password_verify().
  • No guardes contraseñas en texto plano.
  • Utiliza consultas preparadas.
  • Protege las rutas privadas.
  • Valida la información enviada por formularios.
  • Implementa HTTPS en producción.

🎯 Conclusión

Crear un sistema de login en PHP y MySQL es uno de los primeros pasos para construir aplicaciones web completas y seguras.

Aunque este ejemplo es básico, puede servir como base para desarrollar:

  • paneles administrativos
  • sistemas empresariales
  • plataformas educativas
  • tiendas virtuales
  • APIs autenticadas

La clave está en mantener buenas prácticas de seguridad y organización desde el inicio del proyecto.

Califica este artículo

Promedio: 0/5 (0 calificaciones)

EM-EMPIRE Play
Autor

EM-EMPIRE Play

Equipo de desarrollo enfocado en tecnología, software, apps, videojuegos, automatización e innovación digital.

Comentarios

Sé el primero en comentar.

Tu comentario será revisado antes de publicarse.
Relacionados

También te puede interesar

Más publicaciones relacionadas con Tutoriales.

No hay contenidos relacionados todavía.