Diğer Bölümler:
PHP İle Sıfırdan Üyelik Sistemi Kodluyoruz! - Bölüm 1
PHP İle Sıfırdan Üyelik Sistemi Kodluyoruz! - Bölüm 2
PHP İle Sıfırdan Üyelik Sistemi Kodluyoruz! - Bölüm 3
PHP İle Sıfırdan Üyelik Sistemi Kodluyoruz! - Bölüm 4
PHP İle Sıfırdan Üyelik Sistemi Kodluyoruz! - Bölüm 5 Final
Önceki bölümlerde üye kaydı, üye girişi ve üyelere özel oturum yönetimini incelemiştik. Bu bölümde ise admine özel bir sayfa yapacak, oradan üye ekleyip, üye silebileceğiz. Hemen başlayalım.
Adım 19 - Login.php Düzenlemesi
Öncelikle dizinimde admin.php adında yeni bir dosya oluşturuyorum. Burası, adminlere özel sayfamı hazırlayacağım alan olacak. Öncelikle login.php sayfamda birkaç değişiklik yapacağım.
Kodlar:
if ($_POST) {
$kullaniciadi = $_POST['username'];
$password = $_POST['passwordlogin'];
$passwordsecurity = md5($password);
$uyekontrol = "SELECT username, password, status FROM users WHERE username = '$kullaniciadi' AND password = '$passwordsecurity'";
$uyekontrolet = $conn->query($uyekontrol);
$uyesaydir = $uyekontrolet->rowCount();
if ($uyesaydir > 0) {
foreach ($uyekontrolet as $statukontrol) {
$statu = $statukontrol['status'];
}
session_start();
$_SESSION["username"] = $_POST["username"];
$_SESSION["statu"] = $statu;
if($_SESSION["statu"] == '0') {
header("location: admin.php?type=success");
}
else if($_SESSION["statu"] == '1') {
header("location: control-panel.php?type=success");
}
} else {
header("location: login.php?type=error");
}
}
login.php sayfamızda hatırlarsanız üye girişinde username ve password kontrolü yapmıştık. Select sorgusuna bir de status'ü ekliyoruz ve foreach ile statuyu yazdırıyoruz. Ardından şu 2 koşulu ekliyoruz.
if($_SESSION["statu"] == '0') {
header("location: admin.php?type=success");
}
Eğer giriş yapan kullanıcının statüsü 0 ise, onu admin.php sayfasına yönlendir.
else if($_SESSION["statu"] == '1') {
header("location: control-panel.php?type=success");
}
Eğer giriş yapan kullanıcının statüsü 1 ise, onu control-panel.php sayfasına yönlendir.
login.php dosyamızı tamamladık. Statü sütunumuzu hatırlarsınız. Veritabanından ''Lions'' üyeliğimin Statüsünü 0 yapıyorum, WmAraci üyeliğinin statüsü 1 olarak kalacak ki başarılı olup olmadığını test edebilelim.
Sıra geldi admin.php dosyamızı hazırlamaya!
Adım 20 - Admin Panelinin Hazırlanması
Kodlar:
session_start();
if($_SESSION["statu"] == '0') {
echo 'Hoşgeldiniz admin!';
}
else {
echo 'Bu sayfayı görüntüleme yetkiniz yok!';
}
Burada, eğer sayfaya gönderilen SESSION üye statusu 0 ise echo ile Hoşgeldiniz admin yazdırdık ve bunun dışındaki tüm SESSION'lara Bu sayfayı görüntüleme yetkiniz yok yazdırdık. Şimdi isterseniz gelin bir test edelim. İki üyelikle de giriş yapıp kontolümüzü sağlayalım :)
WmAraci Üyeliğiyle Giriş Yaptığımda:
Lions Üyeliğiyle Giriş Yaptığımda:
Harika! Artık bu paneli sadece, üye statüsü 0 olan yani admin olanlar görüntüleyebilecek! :) O halde artık admin panelimizin tasarımını yapalım!
Tasarımda, kontrol paneli için hazırladığım tasarımı kullanacağım. Sadece işlevi daha farklı olacak :) Şimdi işlevsel fonksiyonlarımızı yazalım!
Kodlar:
if ($_GET["type"] == 'success') {
$girisbasarili = 'Hoşgeldiniz Sevgili' . $_SESSION["username"] . '';
}
if (isset($_POST['nickname']) && ($_POST['geciciparola']) && ($_POST['email'])) {
$nickname = $_POST['nickname'];
$geciciparola = $_POST['geciciparola'];
$uyemail = $_POST['email'];
$uyestatusu = $_POST['statusu'];
$guvenliparola = md5($geciciparola);
$uyeekleme = "INSERT INTO users (username, password, mail, status, created_time) VALUES ('$nickname', '$guvenliparola', '$uyemail', '$uyestatusu', NOW())";
$eklemesorgusu = $conn->query($uyeekleme);
if ($eklemesorgusu) {
$uyeeklendi = 'Yeni Üye Başarıyla Eklendi!';
} else {
$uyeeklenmedi = 'Üye Eklenemedi!';
}
}
if (isset($_POST['uyenickisil'])) {
$uyesilme = $_POST['uyenickisil'];
$silmeislemi = "DELETE FROM users WHERE username = '$uyesilme'";
$uyesil = $conn->query($silmeislemi);
$silsay = $uyesil->rowCount();
if ($silsay > 0) {
$uyesilindi = 'Üye Başarıyla Silindi!';
} else {
$silinemedi = 'Böyle Bir Üye Bulunamadı!';
}
}
session_start();
if ($_SESSION["statu"] == '0') {
$uyebilgileri = "SELECT username, mail, status, created_time FROM users";
$uyebilgisigetir = $conn->query($uyebilgileri);
echo '
' . $girisbasarili . '
Burası size özel paneldir.
' . $uyeeklendi . $uyeeklenmedi . $uyesilindi . $silinemedi . 'Üye Adı --- Mail Adresi --- Statüsü --- Kayıt Tarihi
';
foreach ($uyebilgisigetir as $uyeler => $yazdir) {
$uyeadi = $yazdir['username'];
$uyemaili = $yazdir['mail'];
$uyestatu = $yazdir['status'];
$kayittarihi = $yazdir['created_time'];
echo $uyeadi . ' --- ' . $uyemaili . ' --- ' . $uyemaili . ' --- ' . $kayittarihi . '
';
}
echo '
';
} else {
echo 'Bu sayfayı görüntüleme yetkiniz yok!';
}
Burada ne yaptığımıza kısaca değinelim:
Öncelikle bir üye ekleme ve üye çıkarma formu oluşturduk. Ardından:
if (isset($_POST['nickname']) && ($_POST['geciciparola']) && ($_POST['email'])) {
$nickname = $_POST['nickname'];
$geciciparola = $_POST['geciciparola'];
$uyemail = $_POST['email'];
$uyestatusu = $_POST['statusu'];
$guvenliparola = md5($geciciparola);
$uyeekleme = "INSERT INTO users (username, password, mail, status, created_time) VALUES ('$nickname', '$guvenliparola', '$uyemail', '$uyestatusu', NOW())";
$eklemesorgusu = $conn->query($uyeekleme);
if ($eklemesorgusu) {
$uyeeklendi = '
} else {
$uyeeklenmedi = '
}
}
Burada tıpkı üye kaydında yaptığımız gibi eğer post edilen bir username, password, mail ve statu varsa bunları veritabanına kaydet dedik.
Not: Burada if koşulunu özelleştirebilir ayrıca tıpkı üye kaydında eklediğimiz gibi veritabanı kontrolü ekleyebilirsiniz.
if (isset($_POST['uyenickisil'])) {
$uyesilme = $_POST['uyenickisil'];
$silmeislemi = "DELETE FROM users WHERE username = '$uyesilme'";
$uyesil = $conn->query($silmeislemi);
$silsay = $uyesil->rowCount();
if ($silsay > 0) {
$uyesilindi = '
} else {
$silinemedi = '
}
}
Burada ise üye nickini yazıp sil dediğimiz anda veritabanından bu üyeyi çıkarmış olduk. Şimdi birlikte bir test edelim hem admin girişi, hem üye eklemeyi hem de üye silmeyi :)
Harika! Üye ekleme ve çıkarma admin panelimiz de başarıyla çalışıyor. Bu noktadan sonrası artık sizlere kalmış. İstediğiniz statuleri ve özellikleri rahatlıkla ekleyip çıkartabilirsiniz. Benim burada anlattığım kısım işin en basic düzeyidir. Bu noktadan sonra bu kodları daha kısa, komutları daha temiz, daha az fonksiyon ve daha şık tasarımla dilediğiniz sistemi tasarlayabilirsiniz :) Üyelik paneli sistemimizin tüm dosyalarını şuradan indirebilirsiniz:
Not: SQL'i içine ekledim kurulum yaparken connect.php dosyasındaki veritabanı bilgilerinizi güncellemeyi unutmayın :) Sevgilerimle,
Lions
Dosyalar: WM Araci PHP Üyelik Sistemi