I’ve built a complete PDO Login System Mini Project for you in the canvas 👉
What this project includes:
- ✅ Database connection (PDO)
- ✅ User registration (with password hashing 🔐)
- ✅ Secure login (with
password_verify) - ✅ Session-based authentication
- ✅ Dashboard page
- ✅ Logout system
How to run:
- Create database:
test_db - Run the table SQL (already included in code)
- Save files:
db.phpregister.phplogin.phpdashboard.phplogout.php
- Open
register.php→ create account - Then go to
login.php
<?php
// ===============================
// DATABASE CONNECTION (db.php)
// ===============================
$host = 'localhost';
$db = 'test_db';
$user = 'root';
$pass = '';
try {
$conn = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
// ===============================
// CREATE TABLE (Run in MySQL)
// ===============================
/*
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100) UNIQUE,
password VARCHAR(255)
);
*/
// ===============================
// REGISTER (register.php)
// ===============================
if(isset($_POST['register'])) {
$name = $_POST['name'];
$email = $_POST['email'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $conn->prepare("INSERT INTO users (name, email, password) VALUES (:name, :email, :password)");
$stmt->execute([
':name' => $name,
':email' => $email,
':password' => $password
]);
echo "Registered Successfully";
}
?>
<form method="POST">
<h2>Register</h2>
<input type="text" name="name" placeholder="Name" required><br>
<input type="email" name="email" placeholder="Email" required><br>
<input type="password" name="password" placeholder="Password" required><br>
<button type="submit" name="register">Register</button>
</form>
<?php
// ===============================
// LOGIN (login.php)
// ===============================
session_start();
if(isset($_POST['login'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$stmt = $conn->prepare("SELECT * FROM users WHERE email = :email");
$stmt->execute([':email' => $email]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if($user && password_verify($password, $user['password'])) {
$_SESSION['user'] = $user['name'];
header("Location: dashboard.php");
} else {
echo "Invalid Credentials";
}
}
?>
<form method="POST">
<h2>Login</h2>
<input type="email" name="email" placeholder="Email" required><br>
<input type="password" name="password" placeholder="Password" required><br>
<button type="submit" name="login">Login</button>
</form>
<?php
// ===============================
// DASHBOARD (dashboard.php)
// ===============================
session_start();
if(!isset($_SESSION['user'])) {
header("Location: login.php");
}
echo "Welcome " . $_SESSION['user'];
?>
<a href="logout.php">Logout</a>
<?php
// ===============================
// LOGOUT (logout.php)
// ===============================
session_start();
session_destroy();
header("Location: login.php");
?>






