ETKİNLİK YÖNETİM SİSTEMİ (PHP & MYSQL)
Etkinlik Yönetim Sistemi, kullanıcıların yaklaşan etkinlikleri görüntüleyebildiği, yöneticilerin ise panel üzerinden bu etkinlikleri ekleyip düzenleyebildiği web tabanlı bir uygulamadır. Bu proje; veritabanı bağlantısı, CRUD (Oluşturma, Okuma, Güncelleme, Silme) işlemleri ve session (oturum) yönetimi gibi dinamik web konularını öğrenmek için idealdir.
Bu uygulama sayesinde; PHP ile MySQL bağlantısı, POST ve GET metodları, admin yetkilendirmesi ve dinamik listeleme mantığını pratik bir şekilde öğrenebilirsiniz.
UYGULAMA ÖZELLİKLERİ
Geliştireceğimiz sistem şu özelliklere sahip olacaktır:
- Admin Paneli: Etkinliklerin merkezi bir noktadan yönetimi.
- Oturum Yönetimi: Yetkisiz kişilerin panel erişiminin engellenmesi.
- Dinamik Sayfalar: Veritabanından çekilen içeriklerin detaylı gösterimi.
- Veri Yönetimi: Yeni etkinlik ekleme, silme ve düzenleme opsiyonları.
- Geri Bildirim: İşlem sonuçlarına göre yönlendirme (Header Location).
KULLANILAN TEMEL KAVRAMLAR
Bu proje ile aşağıdaki Web Programlama konularını öğrenmiş olacaksınız:
- PHP & MySQL: Dinamik veri yönetimi.
- PDO: Güvenli veritabanı bağlantı yöntemleri.
- Session (Oturum): Kullanıcı giriş çıkış işlemleri.
- Form İşleme: POST verilerinin yakalanması.
- SQL Sorguları: INSERT, UPDATE, SELECT ve DELETE.
PROJE MANTIĞI
Uygulama akışı şu şekilde ilerler:
- Veritabanı bağlantısı kurulur (baglan.php).
- Admin giriş yaptıktan sonra yönetim paneline erişir (admin.php).
- Form üzerinden etkinlik bilgileri girilir.
- islem.php dosyası veriyi SQL sorgusuna dönüştürüp kaydeder.
- Kullanıcı ön yüzde etkinlik detaylarını görüntüler.
1 VERİTABANI BAĞLANTISININ KURULMASI
Sistemin kalbi olan bağlantı dosyası, sunucu bilgilerini PDO yapısı ile içerir:
try {
$db = new PDO("mysql:host=localhost;dbname=etkinlik_projesi;charset=utf8", "root", "");
} catch (PDOException $e) {
echo "Bağlantı Hatası: " . $e->getMessage();
}
2 VERİ YAKALAMA VE İŞLEME
Admin panelinden gönderilen bir etkinlik kaydı POST metodu ile şu şekilde yakalanır:
if (isset($_POST['etkinlik_kaydet'])) {
$baslik = $_POST['baslik'];
$icerik = $_POST['icerik'];
// Kayıt işlemleri islem.php içerisinde yürütülür.
}
DOSYA VE KOD YAPILARI
Projede kullanılan PHP ve HTML dosyaları aşağıdaki mantıkla kurgulanmıştır:
1) BAGLAN.PHP
Bu dosya, projenin veritabanıyla konuşmasını sağlayan ana dosyadır. Diğer tüm sayfalara include edilerek kullanılır.
<?php
try {
$db = new PDO("mysql:host=localhost;dbname=etkinlik_projesi;charset=utf8", "root", "");
} catch (PDOException $e) {
echo "Veritabanı bağlantı hatası: " . $e->getMessage();
}
?>
2) İŞLEM.PHP
İşlem dosyası, uygulamanın motorudur. Formlardan gelen ekleme, silme ve düzenleme taleplerini karşılar ve SQL komutlarını yürütür.
<?php
include 'baglan.php';
if (isset($_POST['kaydet'])) {
$ekle = $db->prepare("INSERT INTO etkinlikler (ad, tarih, detay) VALUES (?,?,?)");
$sonuc = $ekle->execute([$_POST['ad'], $_POST['tarih'], $_POST['detay']]);
if ($sonuc) {
header("Location: admin.php?durum=ok");
} else {
header("Location: admin.php?durum=no");
}
}
?>
3) ADMİN.PHP
Admin panelinde veritabanındaki tüm etkinlikler listelenir. Bu sayfa üzerinden yeni etkinlik ekleme sayfasına gidilebilir veya mevcut olanlar silinebilir.
<?php include 'baglan.php'; ?>
<table>
<tr>
<th>Etkinlik Adı</th>
<th>Tarih</th>
<th>İşlemler</th>
</tr>
<?php
$cek = $db->prepare("SELECT * FROM etkinlikler");
$cek->execute();
while($yaz = $cek->fetch(PDO::FETCH_ASSOC)) { ?>
<tr>
<td><?php echo $yaz['ad']; ?></td>
<td><?php echo $yaz['tarih']; ?></td>
<td><a href="islem.php?sil=ok&id=<?php echo $yaz['id']; ?>">Sil</a></td>
</tr>
<?php } ?>
</table>
4) ETKINLIK_OLUSTUR.PHP (FORM)
Yeni bir etkinlik kaydı oluşturmak için kullanılan arayüzdür. Formdaki name değerleri islem.php ile tam uyumlu olmalıdır.
<form action="islem.php" method="POST">
<label>Etkinlik Adı:</label>
<input type="text" name="ad" required>
<label>Tarih:</label>
<input type="date" name="tarih" required>
<label>Detaylar:</label>
<textarea name="detay"></textarea>
<button type="submit" name="kaydet">Etkinliği Yayınla</button>
</form>
SONUÇ
PHP ve MySQL ile geliştirilen bu yönetim sistemi, modern web uygulamalarının temel çalışma prensibini öğretir. Veritabanı entegrasyonu sayesinde verileriniz kalıcı hale gelir ve admin paneli üzerinden tam kontrol sağlanır.