PROJENİN AMACI
Bu projenin amacı, kullanıcıların internet üzerinden sisteme kayıt olup griş yaptıktan sonra randevu alabilmelerini sağlayan basit bir web uygulaması geliştirmektir.
Kullanıcılar sisteme kayıt olduktan sonra giriş yapabilir, hizmet seçerek randevu oluşturabilir ve oluşturdukları randevuları görüntüleyip silebilirler.Admin ise tüm randevuları detaylı şekilde görebilir.
KULLANILAN TEMEL KAVRAMLAR
Bu projede aşağıdaki temel kavramlar kullanılmıştır:
- PHP (Sunucu taraflı işlemler)
- MySQL (Veritabanı yönetimi)
- PDO (Güvenli veritabanı bağlantısı)
- Session (Kullanıcı oturum yönetimi)
- Bootstrap (Arayüz tasarımı)
PROJE MANTIĞI
Sistem kullanıcı tabanlı çalışmaktadır. Kullanıcı önce kayıt olur ve sisteme giriş yapar. Giriş yaptıktan sonra session oluşturulur ve kullanıcı sistemde tanınır. Kullanıcı randevu oluşturur. Bu bilgiler veritabanına kaydedilir. Admin panelde JOIN kullanılarak kullanıcı adı, hizmet adı ve tarihle birlikte görüntülenir.
VERİTABANI BAĞLANTISI
Bu kod veritabanı bağlantısı sağlar. PDO kullanılarak güvenli bağlantı kurulmuştur.
<?php
$pdo = new PDO("mysql:host=localhost;dbname=randevu_sistemi;charset=utf8mb4", "root", "");
?>
KULLANICI İŞLEMLERİ
KULLANICI KAYIT SİSTEMİ
Kullanıcı kayıt forunu doldurduğunda bilgiler veritabanına eklenir. Prepare yöntemi kullanılarak kayıt başarılı olursa kullanıcıya mesaj gönderilir.
<?php
include "db.php";
if($_POST) {
$sql = "INSERT INTO kullanicilar (isim, email, sifre) VALUES (:isim, :email, :sifre)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':isim' => $_POST['isim'],
':email' => $_POST['email'],
':sifre' => $_POST['sifre'],
]);
echo "Kayıt Başarılı";
}
?>
KULLANICI GİRİŞ SİSTEMİ
Kullanıcı giriş yaparken email ve şifre kontrol edilir. Doğru bilgiler girilirse session oluşturulur ve kullanıcı sisteme giriş yapmış olur. Yanlış girişte hata mesajı gösterilir.
<?php
session_start();
include "db.php";
if ($_POST) {
$sql = "SELECT * FROM kullanicilar WHERE email = :email AND sifre = :sifre";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':email' => $_POST['email'],
':sifre' => $_POST['sifre']
]);
$kullanici = $stmt->fetch(PDO::FETCH_ASSOC);
if ($kullanici) {
$_SESSION['kullanici'] = $kullanici;
echo "Giriş başarılı";
} else {
echo "Hatalı giriş";
}
}
?>
ÇIKIŞ SİSTEMİ
Bu kod kullanıcının oturumunu sonlandırır ve sistemden çıkış yapmasını sağlar.
<?php
session_start();
session_destroy();
echo "Çıkış yapıldı";
?>
RANDEVU İŞLEMLERİ
RANDEVU OLUŞTURMA SİSTEMİ
Kullanıcı hizmet seçip tarih belirleyerek randevu oluşturur. Kullanıcının ID bilgisi session üzerinden alınır ve veritabanına kaydedilir.
<?php
session_start();
include "db.php";
if ($_POST) {
$sql = "INSERT INTO randevular (kullanici_id, hizmet_id, tarih)
VALUES (:kullanici_id, :hizmet_id, :tarih)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':kullanici_id' => $_SESSION['kullanici']['id'],
':hizmet_id' => $_POST['hizmet_id'],
':tarih' => $_POST['tarih']
]);
echo "Randevu oluşturuldu";
}
$hizmetler = $pdo->query("SELECT * FROM hizmetler");
?>
RANDEVU LİSTELEME (JOIN)
JOIN kullanılarak üç tablo birleştirilir. Böylece randevu bilgileri kullanıcı adı ve hizmet adı ile birlikte listelenir.
<?php
include "db.php";
$sql = "SELECT r.id, k.isim, h.hizmet_adi, r.tarih
FROM randevular r
JOIN kullanicilar k ON r.kullanici_id = k.id
JOIN hizmetler h ON r.hizmet_id = h.id";
$stmt = $pdo->query($sql);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "ID: {$row['id']} - {$row['isim']} - {$row['hizmet_adi']} - {$row['tarih']}<br>";
}
?>
RANDEVU SİLME SİSTEMİ
Seçilen randevu ID üzerinden silinir. DELETE sorgusu ile veritabanından kaldırılır.
<?php
include "db.php";
$id = $_GET['id'];
$sql = "DELETE FROM randevular WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([':id' => $id]);
echo "Randevu silindi";
?>
MENÜ YAPISI
Bu menü kullanıcıların sayfalar arasında geçiş yapmasını sağlar.
<a href="kayit.php">Kayıt Ol</a><br>
<a href="giris.php">Giriş Yap</a><br>
<a href="randevu_olustur.php">Randevu Al</a><br>
<a href="admin_panel.php">Admin Panel</a><br>
Bu proje PHP ve MySQL kullanılarak geliştirilmiş temel bir randevu sistemidir. Kullanıcılar kayıt olup giriş yapabilir, randevu oluşturabilir ve silebilir. Admin panel sayesinde tüm randevular görüntülenebilir ve yönetilebilir.