Php İle Üyelik Sistemi Yapımı

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:


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ı

php
Kodu 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

php
Kodu 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

php
Kodu 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

php
Kodu 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

  1. Güvenlik:
    • SQL enjeksiyon saldırılarına karşı kullanıcı girişlerini temizleyin.
    • Şifreler daima password_hash() ile şifrelenmeli.
  2. Ekstra Özellikler:
    • Şifre sıfırlama mekanizması ekleyin.
    • E-posta doğrulama özelliği ekleyin.
Bu yapı, basit ve güvenilir bir üyelik sistemi oluşturmanızı sağlar. Geliştirmeler için ek özellikler ekleyebilirsiniz! 😊
About author
Zeberus
Webmaster

Comments

There are no comments to display.

Makale Bilgileri

Yazar
Zeberus
Article read time
2 min read
Görüntüleme
184
Last update

More from Zeberus

Üst Alt