PHP Login Sistemi
PCNETT – Bilgisayar ve Yazılım Rehberi
PHP
PHP Scriptleri

PHP Login Sistemi

Bu yazıda, PHP ve MySQL kullanılarak basit ve güvenli bir login (giriş) sistemi nasıl oluşturulur adım adım anlatılmaktadır. PDO yapısı, password_hash ve password_verify fonksiyonları ile kullanıcı şifrelerinin güvenli şekilde saklanması sağlanırken, session yapısı ile oturum kontrolü yapılmaktadır. Eğitim amaçlı hazırlanan bu örnek, PHP ile giriş sistemi mantığını öğrenmek isteyenler için temel ve anlaşılır bir rehber sunar.

40 İndirme 2.5 KB 01 Şubat 2026
Ücretsiz İndir Direkt indirme başlayacak

Detaylı Açıklama

📁 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