PHP Secure Login System
This tutorial explains how to create a secure login system in PHP using PDO, password hashing, and sessions.
Step 1: Create User Table
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
<?php // db.php — Database connection using PDO $host = 'localhost'; // or your DB host $db = 'your_database'; // replace with your DB name $user = 'root'; // DB username $pass = ''; // DB password $charset = 'utf8mb4'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // Enable exceptions PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // Fetch associative arrays PDO::ATTR_EMULATE_PREPARES => false, // Use real prepared statements ]; try { $pdo = new PDO($dsn, $user, $pass, $options); } catch (PDOException $e) { // Handle error gracefully echo "Database connection failed: " . $e->getMessage(); exit; } ?>Step 2: Register User (register.php)
<?php require 'db.php'; if ($_SERVER["REQUEST_METHOD"] === "POST") { $username = $_POST['username']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (?, ?)"); $stmt->execute([$username, $password]); echo "User registered successfully."; } ?>Step 3: Login User (login.php)
<?php session_start(); require 'db.php'; if ($_SERVER["REQUEST_METHOD"] === "POST") { $username = $_POST['username']; $password = $_POST['password']; $stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?"); $stmt->execute([$username]); $user = $stmt->fetch(); if ($user && password_verify($password, $user['password'])) { $_SESSION['user'] = $user['username']; echo "Login successful."; } else { echo "Invalid credentials."; } } ?>Step 4: Logout (logout.php)
<?php session_start(); session_destroy(); header("Location: login.php"); exit; ?>
यह ट्यूटोरियल PHP में सुरक्षित लॉगिन सिस्टम बनाना सिखाता है जिसमें PDO, पासवर्ड हैशिंग और सेशन का उपयोग होता है।