👨💻 Contenido del tutorial
En esta guía aprenderás a crear un sistema de Login y Registro en PHP utilizando sesiones, sin frameworks. Es ideal para proyectos pequeños y medianos que no requieren autenticación compleja.
📁 Archivos necesarios:
registro.php(para crear la cuenta)login.php(para iniciar sesión)bienvenido.php(página de inicio tras login)logout.php(cerrar sesión)
🧾 1. Formulario de Registro (registro.php)
<form method="POST" action="registro.php">
<input type="text" name="usuario" placeholder="Usuario" required><br>
<input type="password" name="clave" placeholder="Contraseña" required><br>
<input type="submit" name="registrar" value="Registrarse">
</form>
<?php
if (isset($_POST['registrar'])) {
$usuario = $_POST['usuario'];
$clave = password_hash($_POST['clave'], PASSWORD_DEFAULT);
$conexion = new mysqli("localhost", "root", "", "mi_bd");
$conexion->query("INSERT INTO usuarios (usuario, clave) VALUES ('$usuario', '$clave')");
echo "Registrado correctamente.";
}
?>
🔐 2. Formulario de Login (login.php)
<form method="POST" action="login.php">
<input type="text" name="usuario" placeholder="Usuario" required><br>
<input type="password" name="clave" placeholder="Contraseña" required><br>
<input type="submit" name="ingresar" value="Iniciar Sesión">
</form>
<?php
session_start();
if (isset($_POST['ingresar'])) {
$usuario = $_POST['usuario'];
$clave = $_POST['clave'];
$conexion = new mysqli("localhost", "root", "", "mi_bd");
$resultado = $conexion->query("SELECT * FROM usuarios WHERE usuario='$usuario'");
if ($fila = $resultado->fetch_assoc()) {
if (password_verify($clave, $fila['clave'])) {
$_SESSION['usuario'] = $usuario;
header("Location: bienvenido.php");
} else {
echo "Contraseña incorrecta.";
}
} else {
echo "Usuario no encontrado.";
}
}
?>
✅ 3. Página de Bienvenida (bienvenido.php)
<?php
session_start();
if (!isset($_SESSION['usuario'])) {
header("Location: login.php");
exit();
}
echo "Bienvenido, " . $_SESSION['usuario'];
?>
<a href="logout.php">Cerrar Sesión</a>
❌ 4. Cerrar sesión (logout.php)
<?php
session_start();
session_destroy();
header("Location: login.php");
?>
🧠 Notas:
- Este ejemplo almacena los usuarios en una tabla
usuarioscon camposid,usuario,clave. - Las contraseñas se almacenan con
password_hashy se validan conpassword_verify. - Puedes extenderlo con roles, validación por correo, o tokens si lo deseas.