Bir PHP üyelik sistemi oluşturmak için, kullanıcıların kayıt olabileceği, giriş yapabileceği ve profil bilgilerini görüntüleyebileceği temel bir yapı oluşturabilirsiniz. İşte adım adım bir PHP üyelik sistemi:
sql
Kodu kopyala
USE uyelik_sistemi;
Kodu kopyala
Kodu kopyala
Kodu kopyala
Kodu kopyala

1. Gereksinimler
- Bir web sunucusu (Apache veya Nginx gibi)
- PHP yüklü bir ortam
- MySQL/MariaDB veritabanı
2. Veritabanı Tasarımı
MySQL'de bir kullanıcılar tablosu oluşturun:sql
Kodu kopyala
Kod:
CREATE DATABASE uyelik_sistemi;
USE uyelik_sistemi;
Kod:
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
);
3. PHP Proje Yapısı
Oluşturmanız gereken temel dosyalar:- config.php → Veritabanı bağlantısı için
- register.php → Kayıt formu ve işleme
- login.php → Giriş formu ve işleme
- logout.php → Çıkış işlemi
- profile.php → Kullanıcı profili
- header.php ve footer.php → Ortak tasarım ve düzen için
4. config.php - Veritabanı Bağlantısı
phpKodu kopyala
Kod:
<?php
$host = 'localhost';
$dbname = 'uyelik_sistemi';
$username = 'root'; // Veritabanı kullanıcı adı
$password = ''; // Veritabanı şifresi
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Veritabanı bağlantı hatası: " . $e->getMessage());
}
?>
5. register.php - Kayıt İşlemi
phpKodu kopyala
Kod:
<?php
include 'config.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = htmlspecialchars($_POST['username']);
$email = htmlspecialchars($_POST['email']);
$password = password_hash($_POST['password'], PASSWORD_BCRYPT);
$stmt = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
if ($stmt->execute([$username, $email, $password])) {
echo "Kayıt başarılı! <a href='login.php'>Giriş yap</a>";
} else {
echo "Kayıt sırasında bir hata oluştu.";
}
}
?>
<form method="post">
Kullanıcı Adı: <input type="text" name="username" required><br>
E-posta: <input type="email" name="email" required><br>
Şifre: <input type="password" name="password" required><br>
<button type="submit">Kayıt Ol</button>
</form>
6. login.php - Giriş İşlemi
phpKodu kopyala
Kod:
<?php
include 'config.php';
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$username]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header("Location: profile.php");
exit;
} else {
echo "Geçersiz kullanıcı adı veya şifre.";
}
}
?>
<form method="post">
Kullanıcı Adı: <input type="text" name="username" required><br>
Şifre: <input type="password" name="password" required><br>
<button type="submit">Giriş Yap</button>
</form>
7. profile.php - Kullanıcı Profili
phpKodu kopyala
Kod:
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
echo "Hoşgeldiniz, " . htmlspecialchars($_SESSION['username']) . "!<br>";
echo "<a href='logout.php'>Çıkış Yap</a>";
?>
8. logout.php - Çıkış İşlemi
php
Kod:
Kodu kopyala
<?php
session_start();
session_destroy();
header("Location: login.php");
exit;
?>
9. Güvenlik ve Ek Özellikler
- Güvenlik:
- SQL enjeksiyon saldırılarına karşı kullanıcı girişlerini temizleyin.
- Şifreler daima password_hash() ile şifrelenmeli.
- Ekstra Özellikler:
- Şifre sıfırlama mekanizması ekleyin.
- E-posta doğrulama özelliği ekleyin.
