📁 Dosya Yapısı
/login-sistemi ├─ db.php ├─ register.php ├─ login.php ├─ dashboard.php ├─ logout.php
🛢️ Veritabanı (MySQL)
CREATE DATABASE pcnett_login CHARACTER SET utf8mb4;
USE pcnett_login;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
🔗 db.php (Veritabanı Bağlantısı)
<?php
$host = "localhost";
$dbname = "pcnett_login";
$user = "root";
$pass = "";
try {
$db = new PDO(
"mysql:host=$host;dbname=$dbname;charset=utf8mb4",
$user,
$pass
);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Veritabanı bağlantı hatası!");
}
📝 register.php (Kayıt Olma)
<?php
require "db.php";
if ($_POST) {
$username = trim($_POST["username"]);
$password = password_hash($_POST["password"], PASSWORD_DEFAULT);
$query = $db->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$query->execute([$username, $password]);
echo "Kayıt başarılı. <a href='login.php'>Giriş yap</a>";
}
?>
<form method="post">
<input type="text" name="username" placeholder="Kullanıcı adı" required>
<input type="password" name="password" placeholder="Şifre" required>
<button type="submit">Kayıt Ol</button>
</form>
🔐 login.php (Giriş Yap)
<?php
session_start();
require "db.php";
if ($_POST) {
$username = $_POST["username"];
$password = $_POST["password"];
$query = $db->prepare("SELECT * FROM users WHERE username = ?");
$query->execute([$username]);
$user = $query->fetch(PDO::FETCH_ASSOC);
if ($user && password_verify($password, $user["password"])) {
$_SESSION["user"] = $user["username"];
header("Location: dashboard.php");
exit;
} else {
echo "Hatalı kullanıcı adı veya şifre";
}
}
?>
<form method="post">
<input type="text" name="username" placeholder="Kullanıcı adı" required>
<input type="password" name="password" placeholder="Şifre" required>
<button type="submit">Giriş Yap</button>
</form>
🧠 dashboard.php (Korumalı Sayfa)
<?php
session_start();
if (!isset($_SESSION["user"])) {
header("Location: login.php");
exit;
}
?>
<h2>Hoş geldin, <?php echo htmlspecialchars($_SESSION["user"]); ?> 👋</h2>
<a href="logout.php">Çıkış Yap</a>
🚪 logout.php (Çıkış)
<?php
session_start();
session_destroy();
header("Location: login.php");
exit;
Bu sistem eğitim amaçlıdır
Gerçek projelerde:
- CSRF Token
- reCAPTCHA
- Giriş deneme limiti
- HTTPS
- kullanılmalıdır