263 lines
17 KiB
PHP
263 lines
17 KiB
PHP
<?php ob_start(); ?>
|
|
<?php
|
|
session_start();
|
|
require_once __DIR__ . '/../db/config.php';
|
|
|
|
$site_name = 'BITCrypto';
|
|
try {
|
|
$stmt = db()->prepare("SELECT config_value FROM system_config WHERE config_key = 'site_name'");
|
|
$stmt->execute();
|
|
$config = $stmt->fetch();
|
|
if ($config) $site_name = $config['config_value'];
|
|
} catch (Exception $e) {}
|
|
|
|
$user = null;
|
|
if (isset($_SESSION['user_id'])) {
|
|
$stmt = db()->prepare("SELECT * FROM users WHERE id = ?");
|
|
$stmt->execute([$_SESSION['user_id']]);
|
|
$user = $stmt->fetch();
|
|
}
|
|
|
|
// Language logic
|
|
if (isset($_GET['lang'])) {
|
|
$_SESSION['lang'] = $_GET['lang'];
|
|
$current_page = strtok($_SERVER["REQUEST_URI"], '?');
|
|
header("Location: $current_page");
|
|
exit;
|
|
}
|
|
$lang = $_SESSION['lang'] ?? 'en';
|
|
|
|
// Expanded translation array for 8 languages
|
|
$translations = [
|
|
'en' => [
|
|
'Home' => 'Home', 'Trade' => 'Trade', 'Spot' => 'Spot', 'Perpetual' => 'Perpetual', 'Markets' => 'Markets', 'Exchange' => 'Exchange',
|
|
'Deposit' => 'Deposit', 'Withdraw' => 'Withdraw', 'Security' => 'Security', 'KYC' => 'Verification', 'Profile' => 'User Center',
|
|
'Login' => 'Login', 'Register' => 'Register', 'Logout' => 'Logout', 'Overview' => 'Overview', 'Assets' => 'Assets',
|
|
'Real-time Markets' => 'Real-time Markets', 'Trade Anywhere' => 'Trade Anywhere, Anytime.', 'Download app' => 'Scan to download BITCrypto app',
|
|
'Account Overview' => 'Account Overview', 'Total Balance' => 'Total Balance', 'Security Settings' => 'Security Settings',
|
|
'Login Password' => 'Login Password', 'Trading Password' => 'Trading Password', 'Identity Verification' => 'Identity Verification',
|
|
'Full Name' => 'Full Name', 'ID Number' => 'ID Number', 'Submit' => 'Submit', 'Asset Name' => 'Asset Name', 'Last Price' => 'Last Price',
|
|
'24h Change' => '24h Change', 'Market Cap' => 'Market Cap', 'Trade Now' => 'Trade Now', 'Change' => 'Change', 'Set up' => 'Set up'
|
|
],
|
|
'zh' => [
|
|
'Home' => '首页', 'Trade' => '交易', 'Spot' => '现货', 'Perpetual' => '永续合约', 'Markets' => '行情', 'Exchange' => '兑换',
|
|
'Deposit' => '充币', 'Withdraw' => '提币', 'Security' => '安全中心', 'KYC' => '身份认证', 'Profile' => '个人中心',
|
|
'Login' => '登录', 'Register' => '注册', 'Logout' => '退出登录', 'Overview' => '资产概览', 'Assets' => '我的资产',
|
|
'Real-time Markets' => '实时行情', 'Trade Anywhere' => '随时随地进行交易', 'Download app' => '扫码下载 BITCrypto App',
|
|
'Account Overview' => '账户概览', 'Total Balance' => '总资产折算', 'Security Settings' => '安全设置',
|
|
'Login Password' => '登录密码', 'Trading Password' => '资金密码', 'Identity Verification' => '身份认证',
|
|
'Full Name' => '姓名', 'ID Number' => '证件号码', 'Submit' => '提交', 'Asset Name' => '资产名称', 'Last Price' => '最新价',
|
|
'24h Change' => '24h 涨跌', 'Market Cap' => '市值', 'Trade Now' => '立即交易', 'Change' => '修改', 'Set up' => '去设置'
|
|
],
|
|
'ja' => [
|
|
'Home' => 'ホーム', 'Trade' => 'トレード', 'Spot' => '現物', 'Perpetual' => '無期限', 'Markets' => 'マーケット', 'Exchange' => '両替',
|
|
'Deposit' => '入金', 'Withdraw' => '出金', 'Security' => 'セキュリティ', 'KYC' => '本人確認', 'Profile' => 'ユーザーセンター',
|
|
'Login' => 'ログイン', 'Register' => '新規登録', 'Logout' => 'ログアウト', 'Overview' => '概要', 'Assets' => '資産',
|
|
'Real-time Markets' => 'リアルタイムマーケット', 'Trade Anywhere' => 'いつでも、どこでもトレード', 'Download app' => 'BITCryptoアプリをダウンロード',
|
|
'Account Overview' => 'アカウント概要', 'Total Balance' => '総資産', 'Security Settings' => 'セキュリティ設定',
|
|
'Login Password' => 'ログインパスワード', 'Trading Password' => '取引パスワード', 'Identity Verification' => '本人確認',
|
|
'Full Name' => '氏名', 'ID Number' => 'ID番号', 'Submit' => '送信', 'Asset Name' => '資産名', 'Last Price' => '現在値',
|
|
'24h Change' => '24h 変動', 'Market Cap' => '時価総額', 'Trade Now' => '今すぐトレード', 'Change' => '変更', 'Set up' => '設定'
|
|
],
|
|
'ko' => [
|
|
'Home' => '홈', 'Trade' => '거래', 'Spot' => '현물', 'Perpetual' => '선물', 'Markets' => '시장', 'Exchange' => '교환',
|
|
'Deposit' => '입금', 'Withdraw' => '출금', 'Security' => '보안', 'KYC' => '본인인증', 'Profile' => '사용자 센터',
|
|
'Login' => '로그인', 'Register' => '회원가입', 'Logout' => '로그아웃', 'Overview' => '개요', 'Assets' => '자산',
|
|
'Real-time Markets' => '실시간 시장', 'Trade Anywhere' => '언제 어디서나 거래하세요', 'Download app' => 'BITCrypto 앱 다운로드',
|
|
'Account Overview' => '계정 개요', 'Total Balance' => '총 잔액', 'Security Settings' => '보안 설정',
|
|
'Login Password' => '로그인 비밀번호', 'Trading Password' => '거래 비밀번호', 'Identity Verification' => '본인인증',
|
|
'Full Name' => '성명', 'ID Number' => '신분증 번호', 'Submit' => '제출', 'Asset Name' => '자산 이름', 'Last Price' => '현재가',
|
|
'24h Change' => '24h 변동', 'Market Cap' => '시가총액', 'Trade Now' => '지금 거래하기', 'Change' => '변경', 'Set up' => '설정'
|
|
],
|
|
'ru' => [
|
|
'Home' => 'Главная', 'Trade' => 'Торговля', 'Spot' => 'Спот', 'Perpetual' => 'Фьючерсы', 'Markets' => 'Рынки', 'Exchange' => 'Обмен',
|
|
'Deposit' => 'Депозит', 'Withdraw' => 'Вывод', 'Security' => 'Безопасность', 'KYC' => 'Верификация', 'Profile' => 'Центр пользователя',
|
|
'Login' => 'Вход', 'Register' => 'Регистрация', 'Logout' => 'Выход', 'Overview' => 'Обзор', 'Assets' => 'Активы',
|
|
'Real-time Markets' => 'Рынки в реальном времени', 'Trade Anywhere' => 'Торгуйте где угодно', 'Download app' => 'Скачать приложение BITCrypto',
|
|
'Account Overview' => 'Обзор аккаунта', 'Total Balance' => 'Общий баланс', 'Security Settings' => 'Настройки безопасности',
|
|
'Login Password' => 'Пароль для входа', 'Trading Password' => 'Торговый пароль', 'Identity Verification' => 'Верификация личности',
|
|
'Full Name' => 'Полное имя', 'ID Number' => 'Номер документа', 'Submit' => 'Отправить', 'Asset Name' => 'Название актива', 'Last Price' => 'Цена',
|
|
'24h Change' => 'Изм. за 24ч', 'Market Cap' => 'Капитализация', 'Trade Now' => 'Торговать', 'Change' => 'Изменить', 'Set up' => 'Настроить'
|
|
],
|
|
'fr' => [
|
|
'Home' => 'Accueil', 'Trade' => 'Trader', 'Spot' => 'Spot', 'Perpetual' => 'Futures', 'Markets' => 'Marchés', 'Exchange' => 'Échange',
|
|
'Deposit' => 'Dépôt', 'Withdraw' => 'Retrait', 'Security' => 'Sécurité', 'KYC' => 'Vérification', 'Profile' => 'Centre utilisateur',
|
|
'Login' => 'Connexion', 'Register' => 'S\'inscrire', 'Logout' => 'Déconnexion', 'Overview' => 'Aperçu', 'Assets' => 'Actifs',
|
|
'Real-time Markets' => 'Marchés en temps réel', 'Trade Anywhere' => 'Tradez n\'importe où', 'Download app' => 'Télécharger l\'app BITCrypto',
|
|
'Account Overview' => 'Aperçu du compte', 'Total Balance' => 'Solde total', 'Security Settings' => 'Paramètres de sécurité',
|
|
'Login Password' => 'Mot de passe de connexion', 'Trading Password' => 'Mot de passe de transaction', 'Identity Verification' => 'Vérification d\'identité',
|
|
'Full Name' => 'Nom complet', 'ID Number' => 'Numéro d\'identité', 'Submit' => 'Soumettre', 'Asset Name' => 'Nom de l\'actif', 'Last Price' => 'Prix',
|
|
'24h Change' => 'Var. 24h', 'Market Cap' => 'Cap. boursière', 'Trade Now' => 'Trader maintenant', 'Change' => 'Modifier', 'Set up' => 'Configurer'
|
|
],
|
|
'es' => [
|
|
'Home' => 'Inicio', 'Trade' => 'Trading', 'Spot' => 'Spot', 'Perpetual' => 'Futuros', 'Markets' => 'Mercados', 'Exchange' => 'Intercambio',
|
|
'Deposit' => 'Depósito', 'Withdraw' => 'Retiro', 'Security' => 'Seguridad', 'KYC' => 'Verificación', 'Profile' => 'Centro de usuario',
|
|
'Login' => 'Iniciar sesión', 'Register' => 'Registrarse', 'Logout' => 'Cerrar sesión', 'Overview' => 'Resumen', 'Assets' => 'Activos',
|
|
'Real-time Markets' => 'Mercados en tiempo real', 'Trade Anywhere' => 'Opera en cualquier lugar', 'Download app' => 'Descargar app BITCrypto',
|
|
'Account Overview' => 'Resumen de cuenta', 'Total Balance' => 'Saldo total', 'Security Settings' => 'Ajustes de seguridad',
|
|
'Login Password' => 'Contraseña de acceso', 'Trading Password' => 'Contraseña de trading', 'Identity Verification' => 'Verificación de identidad',
|
|
'Full Name' => 'Nombre completo', 'ID Number' => 'Número de documento', 'Submit' => 'Enviar', 'Asset Name' => 'Activo', 'Last Price' => 'Último precio',
|
|
'24h Change' => 'Var. 24h', 'Market Cap' => 'Cap. de mercado', 'Trade Now' => 'Operar ahora', 'Change' => 'Cambiar', 'Set up' => 'Configurar'
|
|
],
|
|
'de' => [
|
|
'Home' => 'Startseite', 'Trade' => 'Handeln', 'Spot' => 'Spot', 'Perpetual' => 'Futures', 'Markets' => 'Märkte', 'Exchange' => 'Tausch',
|
|
'Deposit' => 'Einzahlung', 'Withdraw' => 'Auszahlung', 'Security' => 'Sicherheit', 'KYC' => 'Verifizierung', 'Profile' => 'Benutzerzentrum',
|
|
'Login' => 'Anmelden', 'Register' => 'Registrieren', 'Logout' => 'Abmelden', 'Overview' => 'Übersicht', 'Assets' => 'Vermögenswerte',
|
|
'Real-time Markets' => 'Echtzeit-Märkte', 'Trade Anywhere' => 'Überall handeln', 'Download app' => 'BITCrypto App herunterladen',
|
|
'Account Overview' => 'Kontoübersicht', 'Total Balance' => 'Gesamtguthaben', 'Security Settings' => 'Sicherheitseinstellungen',
|
|
'Login Password' => 'Login-Passwort', 'Trading Password' => 'Handelspasswort', 'Identity Verification' => 'Identitätsprüfung',
|
|
'Full Name' => 'Vollständiger Name', 'ID Number' => 'Ausweisnummer', 'Submit' => 'Absenden', 'Asset Name' => 'Name', 'Last Price' => 'Preis',
|
|
'24h Change' => '24h Änderung', 'Market Cap' => 'Marktkapitalisierung', 'Trade Now' => 'Jetzt handeln', 'Change' => 'Ändern', 'Set up' => 'Einrichten'
|
|
]
|
|
];
|
|
|
|
function t($key, $default = null) {
|
|
global $lang, $translations;
|
|
return $translations[$lang][$key] ?? ($translations['en'][$key] ?? ($default ?? $key));
|
|
}
|
|
|
|
function mt($key) {
|
|
return t($key);
|
|
}
|
|
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="<?php echo $lang; ?>">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title><?php echo $site_name; ?> - Professional Crypto Exchange</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
|
|
<style>
|
|
:root {
|
|
--bg-color: #0b0e11;
|
|
--text-color: #eaecef;
|
|
--accent-color: #f0b90b;
|
|
--card-bg: #1e2329;
|
|
--border-color: #363c4e;
|
|
--okx-blue: #0046ff;
|
|
--text-muted: #848e9c;
|
|
}
|
|
body {
|
|
background-color: var(--bg-color);
|
|
color: var(--text-color);
|
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
overflow-x: hidden;
|
|
}
|
|
.navbar {
|
|
background-color: var(--bg-color);
|
|
border-bottom: 1px solid var(--border-color);
|
|
padding: 0.75rem 1.5rem;
|
|
}
|
|
.navbar-brand {
|
|
font-weight: 800;
|
|
color: var(--text-color) !important;
|
|
font-size: 1.5rem;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.navbar-brand span {
|
|
color: var(--okx-blue);
|
|
}
|
|
.nav-link {
|
|
color: var(--text-color) !important;
|
|
font-weight: 500;
|
|
margin: 0 10px;
|
|
font-size: 0.95rem;
|
|
}
|
|
.nav-link:hover {
|
|
color: var(--okx-blue) !important;
|
|
}
|
|
.btn-accent {
|
|
background-color: var(--text-color);
|
|
color: #000;
|
|
font-weight: 600;
|
|
border: none;
|
|
border-radius: 20px;
|
|
padding: 6px 20px;
|
|
}
|
|
.btn-accent:hover {
|
|
background-color: #fff;
|
|
color: #000;
|
|
}
|
|
.dropdown-menu {
|
|
background-color: var(--card-bg);
|
|
border: 1px solid var(--border-color);
|
|
box-shadow: 0 10px 30px rgba(0,0,0,0.5);
|
|
}
|
|
.dropdown-item {
|
|
color: var(--text-color);
|
|
padding: 10px 20px;
|
|
}
|
|
.dropdown-item:hover {
|
|
background-color: var(--border-color);
|
|
color: var(--okx-blue);
|
|
}
|
|
/* Global visibility fixes */
|
|
.text-black { color: #000 !important; }
|
|
.text-white { color: #fff !important; }
|
|
.bg-white { background-color: #fff !important; color: #000 !important; }
|
|
.bg-white .text-muted { color: #666 !important; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<nav class="navbar navbar-expand-lg sticky-top">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand" href="index.php">
|
|
BIT<span>Crypto</span>
|
|
</a>
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<ul class="navbar-nav me-auto">
|
|
<li class="nav-item"><a class="nav-link" href="index.php"><?php echo mt('Home'); ?></a></li>
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="#" id="tradeDropdown" role="button" data-bs-toggle="dropdown">
|
|
<?php echo mt('Trade'); ?>
|
|
</a>
|
|
<ul class="dropdown-menu">
|
|
<li><a class="dropdown-item" href="trade.php?type=spot"><?php echo mt('Spot'); ?></a></li>
|
|
<li><a class="dropdown-item" href="trade.php?type=contract"><?php echo mt('Perpetual'); ?></a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item"><a class="nav-link" href="market.php"><?php echo mt('Markets'); ?></a></li>
|
|
<li class="nav-item"><a class="nav-link" href="exchange.php"><?php echo mt('Exchange'); ?></a></li>
|
|
</ul>
|
|
<ul class="navbar-nav ms-auto align-items-center">
|
|
<li class="nav-item dropdown me-3">
|
|
<a class="nav-link dropdown-toggle" href="#" id="langDropdown" role="button" data-bs-toggle="dropdown">
|
|
<i class="fas fa-globe"></i> <?php
|
|
$langs = ['en' => 'English', 'zh' => '简体中文', 'ja' => '日本語', 'ko' => '한국어', 'ru' => 'Русский', 'fr' => 'Français', 'es' => 'Español', 'de' => 'Deutsch'];
|
|
echo $langs[$lang] ?? 'English';
|
|
?>
|
|
</a>
|
|
<ul class="dropdown-menu dropdown-menu-end">
|
|
<?php foreach($langs as $code => $name):
|
|
echo "<li><a class=\"dropdown-item\" href=\" ?lang=$code\">$name</a></li>";
|
|
endforeach; ?>
|
|
</ul>
|
|
</li>
|
|
<?php if ($user): ?>
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-bs-toggle="dropdown">
|
|
<i class="fas fa-user-circle"></i> <?php echo htmlspecialchars($user['username']); ?>
|
|
</a>
|
|
<ul class="dropdown-menu dropdown-menu-end">
|
|
<li><a class="dropdown-item" href="profile.php"><i class="fas fa-id-card me-2"></i> <?php echo mt('Profile'); ?></a></li>
|
|
<li><a class="dropdown-item" href="profile.php#assets"><i class="fas fa-wallet me-2"></i> <?php echo number_format($user['balance_usdt'], 2); ?> USDT</a></li>
|
|
<li><hr class="dropdown-divider"></li>
|
|
<li><a class="dropdown-item" href="logout.php"><i class="fas fa-sign-out-alt me-2"></i> <?php echo mt('Logout'); ?></a></li>
|
|
</ul>
|
|
</li>
|
|
<?php else: ?>
|
|
<li class="nav-item"><a class="nav-link" href="login.php"><?php echo mt('Login'); ?></a></li>
|
|
<li class="nav-item"><a class="btn btn-accent ms-2" href="register.php"><?php echo mt('Register'); ?></a></li>
|
|
<?php endif; ?>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|