Hablemos del correo masivo, Newsletter
Hablemos de las inscripciones de Newsletter, que puede llevar al error en tu cuenta de hosting y altas facturas.
Crea un sistema de login y registro con PHP y MySQL desde cero, incluyendo validaciones, protección contra SQL Injection y encriptación de contraseñas. Ideal para principiantes.
En este artículo aprenderás cómo crear un sistema de login y registro usando PHP y MySQL, explicado línea por línea. Ideal para principiantes que quieren entender cómo funciona el backend de un sistema de autenticación.
Table of contents [Show]
Primero, crea una base de datos llamada login_db
y dentro de ella la tabla users
.
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
password_hash()
<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbname = "login_db";
$conn = new mysqli($host, $user, $pass, $dbname);
if ($conn->connect_error) {
die("Conexión fallida: " . $conn->connect_error);
}
?>
<form action="register.php" method="POST">
Nombre de usuario: <input type=text name=username required><br>
Correo electrónico: <input type=email name=email required><br>
Contraseña: <input type=password name=password required><br>
Confirmar contraseña: <input type=password name=confirm_password required><br>
<input type=submit value="Registrarse">
</form>
Te puede interesar Como crear un formulario de contacto con HTML y PHP paso a paso
<?php
include 'db.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = trim($_POST["username"]);
$email = trim($_POST["email"]);
$password = $_POST["password"];
$confirm_password = $_POST["confirm_password"];
if (empty($username) || empty($email) || empty($password) || empty($confirm_password)) {
echo "Todos los campos son obligatorios.";
exit;
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Correo no válido.";
exit;
}
if ($password !== $confirm_password) {
echo "Las contraseñas no coinciden.";
exit;
}
$check = $conn->prepare("SELECT id FROM users WHERE username = ? OR email = ?");
$check->bind_param("ss", $username, $email);
$check->execute();
$check->store_result();
if ($check->num_rows > 0) {
echo "El usuario o correo ya están registrados.";
exit;
}
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
$insert = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$insert->bind_param("sss", $username, $email, $hashed_password);
if ($insert->execute()) {
echo "Registro exitoso.";
} else {
echo "Error al registrar: " . $conn->error;
}
}
?>
<form action="login.php" method="POST">
Usuario o Email: <input type=text name=username_or_email required><br>
Contraseña: <input type=password name=password required><br>
<input type=submit value="Iniciar sesión">
</form>
<?php
include 'db.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username_or_email = trim($_POST["username_or_email"]);
$password = $_POST["password"];
if (empty($username_or_email) || empty($password)) {
echo "Todos los campos son obligatorios.";
exit;
}
$stmt = $conn->prepare("SELECT id, username, password FROM users WHERE username = ? OR email = ?");
$stmt->bind_param("ss", $username_or_email, $username_or_email);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 1) {
$user = $result->fetch_assoc();
if (password_verify($password, $user["password"])) {
echo "Bienvenido, " . $user["username"];
} else {
echo "Contraseña incorrecta.";
}
} else {
echo "Usuario no encontrado.";
}
}
?>
→ Descargar el archivo zip←
Ya tienes un sistema funcional de login y registro en PHP con validaciones básicas, protección contra SQL Injection y encriptación de contraseñas.
Opcionalmente, puedes mejorar este sistema agregando:
session_start()
para mantener sesiones iniciadasheader("Location: perfil.php")
para redirigir después del loginlogout.php
para cerrar sesión
Publicaciones originales y auténticas de nosotros, brindamos artículos relacionados a nuestros servicios entre otras cosas
Hablemos de las inscripciones de Newsletter, que puede llevar al error en tu cuenta de hosting y altas facturas.
En este artículo exploraremos desde los conceptos básicos hasta las técnicas más avanzadas de CSS. Aprenderás sobre selectores, herencia, cascada, diseño responsive, animaciones, buenas prácticas modernas y veremos ejemplos prácticos que puedes aplicar en tus proyectos.
Descubre qué es la programación, cómo funciona y por qué es esencial en el mundo digital actual. Aprende sobre los lenguajes, herramientas y lógica que mueven la tecnología que usas a diario.