ImageHub
PHP tabanlı, tam özellikli resim paylaşım platformu. Bulut depolama, ödeme entegrasyonu, puan ve referans sistemi ile kurumsal kullanıma hazır.
Sistem Gereksinimleri
| Bileşen | Minimum Sürüm | Notlar |
|---|---|---|
| PHP | 8.1+ | Match türleri, enum, fibers için |
| MySQL | 5.7+ / MariaDB 10.3+ | utf8mb4_unicode_ci gerekli |
| Apache | 2.4+ | mod_rewrite aktif olmalı |
| PHP Eklentileri | — | PDO, PDO_MySQL, cURL, mbstring, GD |
| Disk Alanı | 1 GB+ | Yüklenen dosyalar için |
Kurulum
Dosyaları Yükle
Zip'i çıkar, dosyaları public_html/image.siteniz.com/ dizinine yükle. uploads/ ve cache/ klasörlerine 755 izni ver.
Veritabanı Oluştur
phpMyAdmin'de yeni bir veritabanı oluştur (utf8mb4_unicode_ci). harbitechsite_image.sql dosyasını import et.
Config Dosyasını Düzenle
includes/config.php içindeki DB bilgilerini ve SITE_URL'yi güncelle.
Admin Girişi
Veritabanında users tablosunda role = 'admin' olan kullanıcıyla /admin/ adresine giriş yap.
Veritabanı Yapısı
| Tablo | Açıklama |
|---|---|
| users | Kullanıcılar, roller, depolama, paket bilgileri |
| images | Yüklenen resimler, slug, meta veriler |
| categories | Resim kategorileri |
| packages | Abonelik paketleri ve limitler |
| orders | Satın alma siparişleri |
| site_settings | Tüm site ayarları (key-value store) |
| menu_links | Header navigasyon linkleri |
| pages | Statik sayfalar (Gizlilik, KVKK vb.) |
| messages | İletişim formu mesajları |
| point_logs | Kullanıcı puan hareketleri |
| referrals | Referans kayıtları ve ödüller |
| affiliate_links | Satış ortaklığı linkleri |
| affiliate_clicks | Affiliate tıklama takibi |
| user_bank_accounts | Kullanıcı IBAN / SWIFT bilgileri |
Dosya Yapısı
Temel Özellikler
Çoklu Yükleme
Sürükle-bırak, dosya seç, URL veya panodan yapıştır
Kısa URL
/i/SLUG formatında benzersiz kısa linkler
Paylaşım
HTML, BBCode, Markdown, direkt link kopyalama
Gizlilik
Herkese açık / gizli resim ayarı
Galeri
Kategori ve arama destekli galeri görünümü
Reklam
Üst, alt, yan, galeri içi reklam alanları
Puan Sistemi
Kullanıcılar her etkileşimde puan kazanır. Puanlar seviye sisteminde kullanılır.
Referans Sistemi
Her kullanıcıya benzersiz referral kodu ve link atanır. Davet edilen kişi kayıt olduğunda puan verilir.
https://image.siteniz.com/register.php?ref=ABC12345
Sosyal medya paylaşım butonları: Twitter, WhatsApp, Telegram, Facebook
Satış Ortaklığı
Affiliate linkleri /ref/KOD formatında üretilir. Tıklama ve dönüşüm takibi yapılır.
| Ayar | Açıklama |
|---|---|
| affiliate_rate | Komisyon oranı (%) |
| affiliate_min_pay | Minimum ödeme tutarı (₺) |
| aff_enabled | Sistem aktif/pasif |
Ödeme talepleri IBAN bilgisi ile yapılır. Kullanıcı panelinde banka hesabı ekleme sekmesi mevcuttur.
Paket Sistemi
| Alan | Açıklama |
|---|---|
| storage_limit | Toplam depolama (MB) |
| max_file_mb | Tek dosya max boyutu (MB) |
| monthly_upload_limit | Aylık yükleme sayısı (0 = sınırsız) |
| price | Aylık ücret (0 = ücretsiz) |
| is_default | Yeni kullanıcılara atanır |
Admin Paneli
Admin paneline /admin/index.php adresinden erişilir. role = 'admin' kullanıcı gerektirir.
Site Ayarları Sekmeleri
| Sekme | İçerik |
|---|---|
| Genel | Site adı, slogan, logo, favicon, dil, bakım modu |
| Yükleme | Max dosya boyutu, izin verilen tipler, limitler |
| Puan & Gelir | Puan miktarları, referans/affiliate ayarları |
| Reklam | Banner kodları (üst, alt, yan, galeri içi) |
| Header & Footer | Menü linkleri, footer metinleri, copyright |
| Menü Linkleri | Header navigasyon link yönetimi |
| Entegrasyonlar | Depolama ve ödeme sistemi ayarları |
| Roadmap | Planlanan güncellemeler |
| Changelog | Sürüm geçmişi |
Depolama Entegrasyonları
Amazon S3 Aktif
Dosyalar S3'e AWS4-HMAC-SHA256 imzalı isteklerle yüklenir. S3 başarısız olursa lokale düşer.
| Ayar | Açıklama |
|---|---|
| s3_access_key | AWS Access Key ID |
| s3_secret_key | AWS Secret Access Key |
| s3_bucket | Bucket adı |
| s3_region | us-east-1, eu-central-1 vb. |
| s3_endpoint | Custom endpoint (Wasabi, MinIO) |
Cloudflare R2 Yakında
Backblaze B2 Yakında
Ödeme Entegrasyonları
PayTR Aktif
iframe embed ile ödeme. Callback URL'yi PayTR paneline ekle:
https://image.siteniz.com/payment_callback.php
Akış: Paket seç → token al → PayTR iframe → callback → paket ata
Stripe Yakında
iyzico Yakında
PayPal Yakında
EFT / Havale Yakında
Yardımcı Fonksiyonlar
config.php
e($str) // XSS-safe çıktı + UTF-8 encoding fix
sanitize($str) // e() ile aynı (geriye dönük uyumluluk)
getSetting($pdo, $key) // site_settings'den değer oku
formatBytes($bytes) // 1048576 → "1 MB"
generateSlug($str) // Türkçe → URL-safe slug
isLoggedIn() // Session kontrolü
isAdmin() // Admin rolü kontrolü
requireLogin() // Zorunlu giriş, yoksa redirect
requireAdmin() // Zorunlu admin, yoksa redirect
getCurrentUser($pdo) // Oturum açmış kullanıcı verisi
cacheRemember($key, $ttl, $fn) // Dosya bazlı önbellekleme
points.php
addPoints($pdo, $userId, $pts, $action, $desc)
getUserPoints($pdo, $userId)
generateReferralCode($pdo, $userId)
getAffiliateLink($pdo, $userId)
trackAffiliateClick($pdo, $code, $ip, $ua)
getDailyLoginBonus($pdo, $userId)
storage.php
storeFile($pdo, $tmpPath, $filename, $mimeType)
deleteFile($pdo, $filename)
getFileUrl($pdo, $filename)
getActiveStorage($pdo) // 's3' | 'local'
payment.php
paytrCreateToken($pdo, $orderId, $amount, $email, ...)
paytrVerifyCallback($pdo, $post)
getActivePayments($pdo) // ['paytr'=>true, 'stripe'=>false, ...]
Güvenlik
SQL Injection
PDO Prepared Statements ile tam koruma
XSS Koruması
e() / htmlspecialchars ile tüm çıktılar temizlenir
Şifreleme
bcrypt (PASSWORD_DEFAULT) ile hash
Dosya Güvenliği
MIME type + uzantı çift kontrolü
PayTR İmzası
HMAC-SHA256 callback doğrulaması
S3 Güvenliği
AWS4-HMAC-SHA256 imzalı istekler