👨💻 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
usuarios
con camposid
,usuario
,clave
. - Las contraseñas se almacenan con
password_hash
y se validan conpassword_verify
. - Puedes extenderlo con roles, validación por correo, o tokens si lo deseas.