Tekil Mesaj gösterimi
Eski 20 Nisan 2026, 19:55   #1
Çevrimiçi
DEKO
DEKO - ait Kullanıcı Resmi (Avatar)
Üyelerin profil bilgilerini yalnızca kayıtlı üyeler görüntüleyebilir. Lütfen kaydol bağlantısından üye olunuz.
sag PHP ile Admin Paneli — Kullanıcı Profil & Rozet Yönetimi (EXP, Özel Rozet, Profil Düzenleme)

PHP ile Admin Paneli — Kullanıcı Profil & Rozet Yönetimi (EXP, Özel Rozet, Profil Düzenleme)

Merhaba,

PHP tabanlı sitelere üye yönetim paneli için; kullanıcılara özel rozetler vermek, puan (EXP) atamak ve profil bilgilerini admin tarafından düzenleyebilmek adına bunların hepsini tek bir sayfada toplayan edit_user_profile.php dosyasını sizinle paylaşıyorum.

━━━━━━━━━━ SAYFA NE YAPIYOR? ━━━━━━━━━━

Sol panelden herhangi bir kullanıcı seçince sağ tarafta o kullanıcıya ait tüm işlemler açılıyor:
  • Rozet Havuzu: Sisteme tanımlı tüm rozetler sol panelde görünüyor. Her rozet için Font Awesome ikon + özel renk seçilebiliyor. Tek tıkla silinebiliyor.
  • Yeni Rozet Oluştur: Ad, açıklama, ikon (FA class), renk girilerek anında sisteme rozet eklenebiliyor.
  • Puan (EXP) Güncelle: Kullanıcının mevcut puanı gösteriliyor, 100 / 500 / 1K / 5K hızlı butonlarıyla veya elle değiştirilebiliyor.
  • Rozet Ver: Rozet havuzundan seçilerek kullanıcıya verilebiliyor. İsteğe bağlı "verilme nedeni" yazılabiliyor. Zaten verilmiş rozetler listede disabled görünüyor.
  • Rozet Geri Al: Kullanıcının mevcut rozetleri tarih ve nedenle birlikte listeleniyor, X butonu ile tek tıkla geri alınabiliyor.
  • Profil Düzenle: Şehir, cinsiyet, website ve biyografi alanları admin tarafından düzenlenebiliyor.

━━━━━━━━━━ ROZET ÖRNEKLERİ ━━━━━━━━━━

Sisteme tanımlayabileceğiniz örnek rozetler:




━━━━━━━━━━ DOSYA YAPISI ━━━━━━━━━━

Kod:
sitem.com/
├── config/
│   └── db.php                    ← PDO bağlantısı (zip içinde hazır)
└── admin/
    └── edit_user_profile.php     ← Ana dosya
━━━━━━━━━━ VERİTABANI TABLOLARI ━━━━━━━━━━

Tablolar dosya ilk çalıştırıldığında otomatik oluşturuluyor. Ama isterseniz manuel de oluşturabilirsiniz:

Kod:
-- Rozet tanımları
CREATE TABLE IF NOT EXISTS badges (
    id          INT AUTO_INCREMENT PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    description TEXT,
    icon        VARCHAR(60)  DEFAULT 'fa-star',
    color       VARCHAR(20)  DEFAULT '#ff3366',
    created_at  DATETIME     DEFAULT NOW()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Kullanıcı-rozet ilişkisi
CREATE TABLE IF NOT EXISTS user_badges (
    id         INT AUTO_INCREMENT PRIMARY KEY,
    user_id    INT NOT NULL,
    badge_id   INT NOT NULL,
    reason     TEXT,
    created_at DATETIME DEFAULT NOW(),
    UNIQUE KEY uq_user_badge (user_id, badge_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- users tablosuna ek kolonlar (zaten varsa ALTER IGNORE ile geçer)
ALTER TABLE users ADD COLUMN IF NOT EXISTS points  INT          DEFAULT 0;
ALTER TABLE users ADD COLUMN IF NOT EXISTS bio     TEXT         NULL;
ALTER TABLE users ADD COLUMN IF NOT EXISTS city    VARCHAR(100) NULL;
ALTER TABLE users ADD COLUMN IF NOT EXISTS gender  VARCHAR(20)  NULL;
ALTER TABLE users ADD COLUMN IF NOT EXISTS website VARCHAR(255) NULL;
━━━━━━━━━━ KURULUM ━━━━━━━━━━

1. Dosyaları yükle
Zip içindeki edit_user_profile.php dosyasını admin/ klasörüne, db.php dosyasını config/ klasörüne koy.

2. db.php'yi doldur
config/db.php dosyasını aç, host / dbname / kullanıcı adı / şifre bilgilerini kendi sunucunuza göre düzenle.

3. Sayfayı aç
admin/edit_user_profile.php adresine git. Tablolar yoksa otomatik oluşturulur, herhangi bir kurulum adımına gerek yok.

4. İlk rozeti oluştur
Sol panelde "Yeni Rozet Oluştur" bölümünü aç → Ad, ikon ve renk gir → Kaydet. Artık kullanıcılara verebilirsin.

━━━━━━━━━━ ÖNEMLİ NOTLAR ━━━━━━━━━━
  • Tablo garantisi: Sayfa her açılışta eksik tablo veya kolon varsa otomatik oluşturuyor. Yeni kurulumda elle SQL çalıştırmana gerek yok.
  • Duplicate engeli: Aynı rozet aynı kullanıcıya iki kez verilemez. UNIQUE KEY ile veritabanı seviyesinde engelleniyor, form da disabled gösteriyor.
  • CSRF koruması: Tüm POST ve GET işlemleri CSRF token ile korunuyor.
  • Bağımlılık yok: Composer veya harici kütüphane gerekmez. Font Awesome CDN üzerinden yükleniyor.
  • Profil alanı genişletilebilir: users tablosuna yeni kolon ekleyip formda ilgili alanı oluşturarak kolayca genişletilebilir.

━━━━━━━━━━ GEREKSİNİMLER ━━━━━━━━━━
  • PHP 7.4 veya üzeri
  • PDO + PDO_MySQL extension
  • MySQL 5.7 / MariaDB 10.3 veya üzeri
  • Font Awesome 6 (CDN üzerinden, kurulum gerektirmez)

━━━━━━━━━━ EKLER ━━━━━━━━━━
  1. edit_user_profile.php — Kullanıcı seçme, rozet oluşturma/verme/geri alma, puan güncelleme ve profil düzenleme arayüzü.
  2. db.php — PDO bağlantı dosyası. Sadece kendi bilgilerinizi girmeniz yeterli.


Test ortamı: PHP 8.2 / MariaDB 10.6. Font Awesome ikonları için fontawesome.com/icons adresinden sınırsız ücretsiz ikon seçebilirsiniz, sadece class adını (fa-star, fa-crown vb.) kopyalamanız yeterli.

Eklenmiş Dosya
Dosya tipi: zip forumel_profil_rozet_yonetimi.zip (7.3 KB, 0x kez indirilmiştir)

Fallen code. Broken systems. No mercy.