Teknik Dokümantasyon

ImageHub

PHP tabanlı, tam özellikli resim paylaşım platformu. Bulut depolama, ödeme entegrasyonu, puan ve referans sistemi ile kurumsal kullanıma hazır.

v1.0.7
PHP 8.1+
MySQL 5.7+
HarbiTech

Sistem Gereksinimleri

BileşenMinimum SürümNotlar
PHP8.1+Match türleri, enum, fibers için
MySQL5.7+ / MariaDB 10.3+utf8mb4_unicode_ci gerekli
Apache2.4+mod_rewrite aktif olmalı
PHP EklentileriPDO, PDO_MySQL, cURL, mbstring, GD
Disk Alanı1 GB+Yüklenen dosyalar için

Kurulum

1

Dosyaları Yükle

Zip'i çıkar, dosyaları public_html/image.siteniz.com/ dizinine yükle. uploads/ ve cache/ klasörlerine 755 izni ver.

2

Veritabanı Oluştur

phpMyAdmin'de yeni bir veritabanı oluştur (utf8mb4_unicode_ci). harbitechsite_image.sql dosyasını import et.

3

Config Dosyasını Düzenle

includes/config.php içindeki DB bilgilerini ve SITE_URL'yi güncelle.

4

Admin Girişi

Veritabanında users tablosunda role = 'admin' olan kullanıcıyla /admin/ adresine giriş yap.

Veritabanı Yapısı

TabloAçıklama
usersKullanıcılar, roller, depolama, paket bilgileri
imagesYüklenen resimler, slug, meta veriler
categoriesResim kategorileri
packagesAbonelik paketleri ve limitler
ordersSatın alma siparişleri
site_settingsTüm site ayarları (key-value store)
menu_linksHeader navigasyon linkleri
pagesStatik sayfalar (Gizlilik, KVKK vb.)
messagesİletişim formu mesajları
point_logsKullanıcı puan hareketleri
referralsReferans kayıtları ve ödüller
affiliate_linksSatış ortaklığı linkleri
affiliate_clicksAffiliate tıklama takibi
user_bank_accountsKullanıcı IBAN / SWIFT bilgileri

Dosya Yapısı

/ ├── index.php # Ana sayfa + upload + galeri ├── view.php # Resim görüntüleme ├── upload.php # Dosya yükleme işleyici ├── upload_from_url.php # URL'den resim yükleme ├── download.php # İndirme işleyici ├── dashboard.php # Kullanıcı paneli ├── packages.php # Paket listesi & satın alma ├── payment_start.php # Ödeme başlatma ├── payment_callback.php # PayTR callback handler ├── i.php # Kısa URL yönlendirici (/i/SLUG) ├── ref.php # Affiliate tıklama takibi │ ├── includes/ │ ├── config.php # DB, sabitler, yardımcı fonksiyonlar │ ├── header.php # Ortak header (tüm sayfalar) │ ├── footer.php # Ortak footer (tüm sayfalar) │ ├── points.php # Puan sistemi fonksiyonları │ ├── storage.php # Depolama abstraction (Local/S3) │ └── payment.php # PayTR entegrasyon fonksiyonları │ ├── admin/ │ ├── index.php # Gösterge paneli │ ├── users.php # Kullanıcı yönetimi │ ├── images.php # Resim yönetimi │ ├── packages.php # Paket yönetimi │ ├── settings.php # Tüm site ayarları (9 sekme) │ ├── integrations.php # Entegrasyon yönetimi │ └── changelog.php # Sürüm notları & roadmap │ ├── uploads/ # Yüklenen dosyalar (chmod 755) └── cache/ # Önbellek dosyaları (chmod 755)

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.

+10
Resim Yükleme
+2
Her İndirme
+50
Referans Kaydı
+5
Günlük Giriş
Tüm puan miktarları Admin → Site Ayarları → Puan & Gelir sekmesinden değiştirilebilir.

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.

AyarAçıklama
affiliate_rateKomisyon oranı (%)
affiliate_min_payMinimum ödeme tutarı (₺)
aff_enabledSistem aktif/pasif

Ödeme talepleri IBAN bilgisi ile yapılır. Kullanıcı panelinde banka hesabı ekleme sekmesi mevcuttur.

Paket Sistemi

AlanAçıklama
storage_limitToplam depolama (MB)
max_file_mbTek dosya max boyutu (MB)
monthly_upload_limitAylık yükleme sayısı (0 = sınırsız)
priceAylık ücret (0 = ücretsiz)
is_defaultYeni 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
GenelSite adı, slogan, logo, favicon, dil, bakım modu
YüklemeMax dosya boyutu, izin verilen tipler, limitler
Puan & GelirPuan miktarları, referans/affiliate ayarları
ReklamBanner kodları (üst, alt, yan, galeri içi)
Header & FooterMenü linkleri, footer metinleri, copyright
Menü LinkleriHeader navigasyon link yönetimi
EntegrasyonlarDepolama ve ödeme sistemi ayarları
RoadmapPlanlanan güncellemeler
ChangelogSü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.

AyarAçıklama
s3_access_keyAWS Access Key ID
s3_secret_keyAWS Secret Access Key
s3_bucketBucket adı
s3_regionus-east-1, eu-central-1 vb.
s3_endpointCustom 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

Roadmap

v1.0.8 Patch
Dark/Light Mod Renk Özelleştirme Cookie Bildirimi Cloudflare R2 Backblaze B2
v1.0.9 Minor
Stripe iyzico PayPal EFT/Havale Google OAuth2
v1.1.0 Major
Blog Sistemi SEO Yönetimi Bildirimler Gelişmiş Profil Kullanıcı Takibi