diff --git a/admin/backend_settings.php b/admin/backend_settings.php index 764e226..cea83db 100644 --- a/admin/backend_settings.php +++ b/admin/backend_settings.php @@ -4,6 +4,17 @@ require_once __DIR__ . '/layout.php'; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $settings = [ 'email_verification_enabled' => $_POST['email_verification_enabled'] ?? '0', + 'mobile_verification_enabled' => $_POST['mobile_verification_enabled'] ?? '0', + 'universal_verification_code' => $_POST['universal_verification_code'] ?? '', + 'verification_api_config' => $_POST['verification_api_config'] ?? '', + 'mobile_api_config' => $_POST['mobile_api_config'] ?? '', + 'smtp_host' => $_POST['smtp_host'] ?? '', + 'smtp_port' => $_POST['smtp_port'] ?? '587', + 'smtp_user' => $_POST['smtp_user'] ?? '', + 'smtp_pass' => $_POST['smtp_pass'] ?? '', + 'smtp_secure' => $_POST['smtp_secure'] ?? 'tls', + 'mail_from_email' => $_POST['mail_from_email'] ?? '', + 'mail_from_name' => $_POST['mail_from_name'] ?? 'Byro Exchange', 'usdt_trc20_address' => $_POST['usdt_trc20_address'] ?? '', 'usdt_erc20_address' => $_POST['usdt_erc20_address'] ?? '', 'usdt_bep20_address' => $_POST['usdt_bep20_address'] ?? '', @@ -82,6 +93,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } $email_verify = getSetting('email_verification_enabled', '0'); +$mobile_verify = getSetting('mobile_verification_enabled', '0'); +$universal_code = getSetting('universal_verification_code', ''); $site_logo = getSetting('site_logo', ''); $site_favicon = getSetting('site_favicon', ''); $site_certificate = getSetting('site_certificate', ''); @@ -207,12 +220,86 @@ ob_start();
安全与功能
-
- > - +
+
+
+ onchange="toggleVerifyUI()"> + +
+
+
+
+ onchange="toggleVerifyUI()"> + +
+
+
+ +
+ + +
用户注册时填写此码将跳过实际验证码校验,方便测试或特殊用户。
+
+ +
+
邮箱 SMTP 配置
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
手机短信接口配置
+ + +
请填写您的短信服务商提供的 API 密钥、签名等信息。
-
开启后,用户注册必须输入验证码(演示环境默认验证码:123456)。
+ +
diff --git a/admin/settings.php b/admin/settings.php index d1f3011..b39751c 100644 --- a/admin/settings.php +++ b/admin/settings.php @@ -14,6 +14,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $settings_to_update = [ 'email_verification_enabled' => $email_verify, + 'verification_api_config' => $_POST['verification_api_config'] ?? '', 'smtp_host' => $_POST['smtp_host'] ?? '', 'smtp_port' => $_POST['smtp_port'] ?? '587', 'smtp_user' => $_POST['smtp_user'] ?? '', @@ -74,6 +75,10 @@ ob_start(); >
+
+ + +
开启后,用户在注册页面必须通过验证码验证。测试环境默认验证码:123456
diff --git a/assets/pasted-20260223-054506-2c020807.png b/assets/pasted-20260223-054506-2c020807.png new file mode 100644 index 0000000..4246de6 Binary files /dev/null and b/assets/pasted-20260223-054506-2c020807.png differ diff --git a/auth/register.php b/auth/register.php index b7c1b3f..8d59ec0 100644 --- a/auth/register.php +++ b/auth/register.php @@ -5,6 +5,8 @@ require_once __DIR__ . '/../db/config.php'; $error = ''; // getSetting is defined in db/config.php $email_verify_enabled = getSetting('email_verification_enabled', '0') === '1'; +$mobile_verify_enabled = getSetting('mobile_verification_enabled', '0') === '1'; +$universal_code = getSetting('universal_verification_code', ''); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $reg_type = $_POST['reg_type'] ?? 'username'; // 'email' or 'username' @@ -14,19 +16,26 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $verify_code = $_POST['verify_code'] ?? ''; $agree_all = isset($_POST['agree_all']); + $is_verify_enabled = ($reg_type === 'email' ? $email_verify_enabled : $mobile_verify_enabled); + if (empty($account) || empty($password)) { $error = __('fill_full_info'); } elseif ($password !== $confirm_password) { $error = __('pwd_mismatch'); - } elseif ($email_verify_enabled && empty($verify_code)) { + } elseif ($is_verify_enabled && empty($verify_code)) { $error = __('enter_verify_code'); } elseif (!$agree_all) { $error = __('agree_terms_error'); } else { - if ($email_verify_enabled && $verify_code !== '123456') { - // Check session for actual code if not demo - if (!isset($_SESSION['email_code']) || $verify_code !== $_SESSION['email_code']) { - $error = __('verify_code_error'); + if ($is_verify_enabled) { + $is_universal = (!empty($universal_code) && $verify_code === $universal_code); + + if (!$is_universal && $verify_code !== '123456') { + // Check session for actual code + $session_key = ($reg_type === 'email' ? 'email_code' : 'mobile_code'); + if (!isset($_SESSION[$session_key]) || $verify_code !== $_SESSION[$session_key]) { + $error = __('verify_code_error'); + } } } @@ -69,23 +78,33 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } } -// Add API for sending email +// Add API for sending verification code if (isset($_GET['action']) && $_GET['action'] === 'send_code') { header('Content-Type: application/json'); - $email = $_GET['email'] ?? ''; - if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { - echo json_encode(['success' => false, 'error' => __('invalid_email')]); - exit; + $account = $_GET['account'] ?? ''; + $type = $_GET['type'] ?? 'email'; + + if ($type === 'email') { + if (!filter_var($account, FILTER_VALIDATE_EMAIL)) { + echo json_encode(['success' => false, 'error' => __('invalid_email')]); + exit; + } } $code = str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT); if (session_status() === PHP_SESSION_NONE) session_start(); - $_SESSION['email_code'] = $code; - require_once __DIR__ . '/../mail/MailService.php'; - $subject = __('verification_code') . ' - ' . __('register'); - $content = __('verification_code') . ": $code"; - $res = MailService::sendMail($email, $subject, $content, $content); + if ($type === 'email') { + $_SESSION['email_code'] = $code; + require_once __DIR__ . '/../mail/MailService.php'; + $subject = __('verification_code') . ' - ' . __('register'); + $content = __('verification_code') . ": $code"; + $res = MailService::sendMail($account, $subject, $content, $content); + } else { + $_SESSION['mobile_code'] = $code; + // Logic for SMS would go here using getSetting('mobile_api_config') + // For now, we just store it in session. + } echo json_encode(['success' => true]); exit; @@ -192,16 +211,14 @@ include __DIR__ . '/../includes/header.php'; -
- -
- +
+
+
-
@@ -238,31 +255,46 @@ function setRegType(type) { const label = document.getElementById('account-label'); const input = document.getElementById('account-input'); const verifyLabel = document.getElementById('verify-label'); + const verifyBox = document.getElementById('verify-box'); + + const emailVerifyEnabled = ; + const mobileVerifyEnabled = ; if (type === 'email') { label.innerText = ''; input.placeholder = ''; input.type = 'email'; if (verifyLabel) verifyLabel.innerText = ''; + verifyBox.style.display = emailVerifyEnabled ? 'block' : 'none'; } else { label.innerText = ''; input.placeholder = ''; input.type = 'text'; if (verifyLabel) verifyLabel.innerText = ''; + verifyBox.style.display = mobileVerifyEnabled ? 'block' : 'none'; } } function sendCode() { - const email = document.getElementById('account-input').value; - if (!email || !email.includes('@')) { - alert(''); - return; + const account = document.getElementById('account-input').value; + const type = document.getElementById('reg_type').value; + + if (type === 'email') { + if (!account || !account.includes('@')) { + alert(''); + return; + } + } else { + if (!account || account.length < 5) { + alert(''); + return; + } } const btn = document.getElementById('sendBtn'); btn.disabled = true; - fetch('?action=send_code&email=' + encodeURIComponent(email)) + fetch('?action=send_code&account=' + encodeURIComponent(account) + '&type=' + type) .then(res => res.json()) .then(data => { if (data.success) { diff --git a/db/database.sql b/db/database.sql index af9f3ac..eceb228 100644 --- a/db/database.sql +++ b/db/database.sql @@ -1,16 +1,9 @@ /* -BYRO Digital Asset Platform - Full Database Dump -Date: 2026-02-20 -Instructions: Import this file into your MySQL/MariaDB database. +BYRO Digital Asset Platform - Clean Database Initializer +Date: 2026-02-23 +Instructions: Import this file into your MySQL/MariaDB database for a fresh start. */ -/*M!999999\- enable the sandbox mode */ --- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64) --- --- Host: 127.0.0.1 Database: app_38451 --- ------------------------------------------------------ --- Server version 10.11.14-MariaDB-0+deb12u2 - /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; @@ -25,10 +18,7 @@ Instructions: Import this file into your MySQL/MariaDB database. -- -- Table structure for table `admins` -- - DROP TABLE IF EXISTS `admins`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `admins` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, @@ -39,27 +29,16 @@ CREATE TABLE `admins` ( `permissions` text DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `admins` --- +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; LOCK TABLES `admins` WRITE; -/*!40000 ALTER TABLE `admins` DISABLE KEYS */; -INSERT INTO `admins` VALUES -(1,'admin','$2y$10$uJvcqHNb.naRWj.apBapi.C.fF2zaIbMhYEtVdGmmVUWZkQi9ESfe','admin','2026-02-18 03:07:35',0,NULL); -/*!40000 ALTER TABLE `admins` ENABLE KEYS */; +INSERT INTO `admins` VALUES (1,'admin','$2y$10$uJvcqHNb.naRWj.apBapi.C.fF2zaIbMhYEtVdGmmVUWZkQi9ESfe','admin','2026-02-18 03:07:35',0,NULL); UNLOCK TABLES; -- -- Table structure for table `binary_orders` -- - DROP TABLE IF EXISTS `binary_orders`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `binary_orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -76,43 +55,12 @@ CREATE TABLE `binary_orders` ( `ip_address` varchar(45) DEFAULT NULL, `end_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `binary_orders` --- - -LOCK TABLES `binary_orders` WRITE; -/*!40000 ALTER TABLE `binary_orders` DISABLE KEYS */; -INSERT INTO `binary_orders` VALUES -(1,2,'BTC','up',100.00000000,60,8.00,67652.01000000,68328.53010000,'won',1,'2026-02-18 06:00:25',NULL,'2026-02-18 08:00:59'), -(2,2,'BTC','down',100.00000000,60,8.00,67788.80000000,67110.91200000,'won',1,'2026-02-18 06:16:43',NULL,'2026-02-18 08:00:59'), -(3,2,'BTC','up',1000.00000000,60,8.00,67879.37000000,68558.16370000,'won',1,'2026-02-18 06:40:10',NULL,'2026-02-18 08:00:59'), -(4,2,'BTC','up',500.00000000,60,8.00,67839.92000000,68518.31920000,'won',1,'2026-02-18 06:57:02',NULL,'2026-02-18 08:00:59'), -(5,2,'BTC','up',100.00000000,60,8.00,67813.14000000,68491.27140000,'won',1,'2026-02-18 07:07:26',NULL,'2026-02-18 08:00:59'), -(6,2,'BTC','down',100.00000000,60,8.00,67770.32000000,67092.61680000,'won',1,'2026-02-18 07:17:26',NULL,'2026-02-18 08:00:59'), -(7,2,'BTC','down',100.00000000,60,8.00,67753.40000000,67075.86600000,'won',1,'2026-02-18 07:22:09',NULL,'2026-02-18 08:00:59'), -(8,2,'BTC','up',100.00000000,60,8.00,67756.31000000,68433.87310000,'won',1,'2026-02-18 07:27:16',NULL,'2026-02-18 08:01:00'), -(9,2,'BTC','down',100.00000000,60,8.00,67798.67000000,67120.68330000,'won',1,'2026-02-18 07:33:08',NULL,'2026-02-18 08:01:00'), -(10,2,'BTC','down',100.00000000,60,8.00,68073.40000000,67392.66600000,'won',1,'2026-02-18 07:44:11',NULL,'2026-02-18 08:01:00'), -(11,2,'BTC','up',100.00000000,60,8.00,68158.35000000,68839.93350000,'won',1,'2026-02-18 07:50:39',NULL,'2026-02-18 08:01:00'), -(12,2,'BTC','up',100.00000000,60,8.00,68142.00000000,68823.42000000,'won',1,'2026-02-18 08:02:35',NULL,'2026-02-18 08:03:35'), -(13,2,'BTC','down',100.00000000,60,8.00,68175.65000000,68169.15000000,'won',1,'2026-02-18 08:37:39',NULL,'2026-02-18 08:38:40'), -(14,2,'ETH','down',1000.00000000,60,8.00,1984.92000000,1986.33000000,'won',1,'2026-02-18 15:16:13',NULL,'2026-02-18 15:17:14'), -(15,2,'BTC','down',23000.00000000,90,12.00,67240.69000000,67230.01000000,'won',2,'2026-02-19 07:22:31',NULL,'2026-02-19 07:24:01'), -(16,2,'BTC','down',1000.00000000,60,8.00,67239.99000000,66567.59010000,'won',2,'2026-02-19 07:26:33',NULL,'2026-02-19 07:27:41'), -(17,2,'BTC','down',1000.00000000,60,8.00,67235.61000000,67229.10000000,'lost',2,'2026-02-19 07:28:22',NULL,'2026-02-19 07:29:22'); -/*!40000 ALTER TABLE `binary_orders` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `chat_remarks` -- - DROP TABLE IF EXISTS `chat_remarks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `chat_remarks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT 0, @@ -122,27 +70,12 @@ CREATE TABLE `chat_remarks` ( `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`,`ip_address`,`session_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `chat_remarks` --- - -LOCK TABLES `chat_remarks` WRITE; -/*!40000 ALTER TABLE `chat_remarks` DISABLE KEYS */; -INSERT INTO `chat_remarks` VALUES -(1,2,'::1','test_session','测试','2026-02-19 02:39:36'); -/*!40000 ALTER TABLE `chat_remarks` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `chat_visitors` -- - DROP TABLE IF EXISTS `chat_visitors`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `chat_visitors` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT 0, @@ -153,27 +86,12 @@ CREATE TABLE `chat_visitors` ( PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`,`ip_address`), KEY `idx_session` (`session_id`) -) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `chat_visitors` --- - -LOCK TABLES `chat_visitors` WRITE; -/*!40000 ALTER TABLE `chat_visitors` DISABLE KEYS */; -INSERT INTO `chat_visitors` VALUES -(1,2,'45.201.166.50','test_session','2026-02-20 06:59:44','14:59:55'); -/*!40000 ALTER TABLE `chat_visitors` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `contract_orders` -- - DROP TABLE IF EXISTS `contract_orders`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `contract_orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -191,24 +109,11 @@ CREATE TABLE `contract_orders` ( `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `contract_orders` --- - -LOCK TABLES `contract_orders` WRITE; -/*!40000 ALTER TABLE `contract_orders` DISABLE KEYS */; -/*!40000 ALTER TABLE `contract_orders` ENABLE KEYS */; -UNLOCK TABLES; -- -- Table structure for table `exchange_records` -- - DROP TABLE IF EXISTS `exchange_records`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `exchange_records` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -220,31 +125,12 @@ CREATE TABLE `exchange_records` ( `created_at` timestamp NULL DEFAULT current_timestamp(), `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `exchange_records` --- - -LOCK TABLES `exchange_records` WRITE; -/*!40000 ALTER TABLE `exchange_records` DISABLE KEYS */; -INSERT INTO `exchange_records` VALUES -(1,2,'USDT','ETH',10000.00000000,5.14204911,0.00051420,'2026-02-20 05:26:38',NULL), -(2,2,'USDT','ETH',5000.00000000,2.55090327,0.00051018,'2026-02-20 05:34:45',NULL), -(3,2,'ETH','USDT',4.00000000,7853.84000000,1963.46000000,'2026-02-20 05:35:13',NULL), -(4,2,'USDT','ETH',872.00000000,0.44480718,0.00051010,'2026-02-20 05:37:53',NULL), -(5,2,'USDT','ETH',7000.00000000,3.57699481,0.00051100,'2026-02-20 05:41:14',NULL); -/*!40000 ALTER TABLE `exchange_records` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `finance_requests` -- - DROP TABLE IF EXISTS `finance_requests`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `finance_requests` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -262,50 +148,12 @@ CREATE TABLE `finance_requests` ( `fiat_amount` decimal(20,2) DEFAULT NULL, `fiat_currency` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `finance_requests` --- - -LOCK TABLES `finance_requests` WRITE; -/*!40000 ALTER TABLE `finance_requests` DISABLE KEYS */; -INSERT INTO `finance_requests` VALUES -(1,2,'recharge',209.64000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 04:45:54',NULL,'2026-02-18 04:46:29',NULL,NULL), -(2,2,'recharge',10.00000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 06:15:15',NULL,'2026-02-18 06:16:15',NULL,NULL), -(3,2,'recharge',10.00000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 06:33:05',NULL,'2026-02-18 06:33:17',NULL,NULL), -(4,2,'recharge',10.00000000,'USDT',3,'Fiat (MYR: 50000)',NULL,NULL,'','2026-02-18 06:37:57',NULL,'2026-02-18 06:38:22',NULL,NULL), -(5,2,'recharge',209.64000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 06:54:02',NULL,'2026-02-18 06:54:16',1000.00,'MYR'), -(6,2,'withdrawal',9249.28000000,'USDT',3,NULL,'Fiat (MYR)',NULL,NULL,'2026-02-18 06:54:44',NULL,'2026-02-18 06:54:58',44119.07,'MYR'), -(7,2,'recharge',10000.00000000,'USDT',3,'Fiat (USD)',NULL,NULL,'','2026-02-18 06:56:22',NULL,'2026-02-18 06:56:45',10000.00,'USD'), -(8,2,'recharge',100.00000000,'USDT',3,'Fiat (USD)',NULL,NULL,'','2026-02-18 07:09:10',NULL,'2026-02-18 07:10:11',100.00,'USD'), -(9,2,'withdrawal',1000.00000000,'USDT',3,NULL,'Fiat (USD)',NULL,NULL,'2026-02-18 08:13:47',NULL,'2026-02-18 08:14:10',1000.00,'USD'), -(10,2,'recharge',100.00000000,'USDT',3,'Fiat (USD)',NULL,NULL,'','2026-02-18 09:05:05',NULL,'2026-02-18 09:05:52',100.00,'USD'), -(11,2,'withdrawal',100.00000000,'USDT',3,NULL,'Fiat (USD)',NULL,NULL,'2026-02-18 09:06:13',NULL,'2026-02-18 09:06:48',100.00,'USD'), -(12,2,'recharge',209.64000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 09:26:51',NULL,'2026-02-18 09:27:12',1000.00,'MYR'), -(13,2,'withdrawal',700.00000000,'USDT',3,NULL,'Fiat (USD)',NULL,NULL,'2026-02-18 09:27:38',NULL,'2026-02-18 09:27:52',700.00,'USD'), -(14,2,'recharge',746.27000000,'USDT',3,'Fiat (SGD)',NULL,NULL,'','2026-02-18 11:17:06',NULL,'2026-02-18 11:18:57',1000.00,'SGD'), -(15,2,'withdrawal',1000.00000000,'USDT',3,NULL,'Fiat (MYR)',NULL,NULL,'2026-02-18 11:18:24',NULL,'2026-02-18 11:19:04',4770.00,'MYR'), -(16,2,'recharge',1000.00000000,'USDT',3,'TRC20',NULL,NULL,'','2026-02-18 11:21:13',NULL,'2026-02-18 11:21:33',NULL,NULL), -(17,2,'recharge',746.26865672,'USDT',3,'Fiat (SGD)',NULL,NULL,'','2026-02-18 11:41:32',NULL,'2026-02-18 11:41:46',1000.00,'SGD'), -(18,2,'recharge',12820.51282051,'USDT',3,'法币充值 (MYR)',NULL,NULL,'','2026-02-18 15:19:59',NULL,'2026-02-18 15:20:45',50000.00,'MYR'), -(19,2,'withdrawal',4000.00000000,'USDT',3,NULL,'法币提现 (USD)',NULL,NULL,'2026-02-19 02:14:37',NULL,'2026-02-19 02:15:22',4000.00,'USD'), -(20,2,'recharge',1447.17800289,'USDT',3,'法币充值 (CNY)',NULL,NULL,'','2026-02-19 02:17:27',NULL,'2026-02-19 02:17:53',10000.00,'CNY'), -(21,2,'withdrawal',857.00000000,'USDT',3,NULL,'法币提现 (JPY)',NULL,NULL,'2026-02-19 02:22:07',NULL,'2026-02-19 02:45:31',132337.94,'JPY'), -(22,2,'recharge',3177.62948840,'USDT',3,'法币充值 (TWD)',NULL,NULL,'','2026-02-19 02:22:40',NULL,'2026-02-19 02:42:46',100000.00,'TWD'), -(23,2,'withdrawal',21000.00000000,'USDT',3,NULL,'法币提现 (USD)',NULL,NULL,'2026-02-19 02:42:12',NULL,'2026-02-19 02:45:37',21000.00,'USD'), -(24,2,'recharge',20000.00000000,'USDT',3,'法币充值 (USD)',NULL,NULL,'','2026-02-19 07:07:28',NULL,'2026-02-19 07:07:42',20000.00,'USD'); -/*!40000 ALTER TABLE `finance_requests` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `messages` -- - DROP TABLE IF EXISTS `messages`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `messages` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT NULL, @@ -317,78 +165,12 @@ CREATE TABLE `messages` ( `created_at` timestamp NULL DEFAULT current_timestamp(), PRIMARY KEY (`id`), KEY `idx_session` (`session_id`) -) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `messages` --- - -LOCK TABLES `messages` WRITE; -/*!40000 ALTER TABLE `messages` DISABLE KEYS */; -INSERT INTO `messages` VALUES -(1,1,NULL,'user','1','::1',NULL,'2026-02-16 03:27:13'), -(2,1,1,'admin','1','::1',NULL,'2026-02-16 03:27:24'), -(3,1,NULL,'user','1','::1',NULL,'2026-02-16 05:05:24'), -(4,1,1,'admin','你好','::1',NULL,'2026-02-16 05:05:50'), -(5,1,NULL,'user','[Recharge Request]Fiat Amount: 1000 CNYEstimated USDT: 139.08 USDTPlease provide payment details.','::1',NULL,'2026-02-16 06:43:24'), -(6,1,NULL,'user','1','::1',NULL,'2026-02-18 03:03:47'), -(7,1,1,'admin','222','::1',NULL,'2026-02-18 03:04:14'), -(8,2,NULL,'user','【充值】类型:法币充值金额:1000 MYR预计到账 USDT:209.64 USDT','::1',NULL,'2026-02-18 03:21:37'), -(9,2,NULL,'user','【充值】类型:法币充值金额:1000 MYR预计到账 USDT:209.64 USDT','::1',NULL,'2026-02-18 04:45:54'), -(10,2,2,'admin','11','::1',NULL,'2026-02-18 09:00:56'), -(11,2,NULL,'user','你好手上','::1',NULL,'2026-02-18 09:04:32'), -(12,2,1,'admin','你好','::1',NULL,'2026-02-18 09:04:43'), -(13,2,NULL,'user','[RECHARGE REQUEST]------------------Type: Fiat RechargeAmount: 100 USDRate: 1 USDT = 1 USDEst. USDT: 100.00 USDTStatus: Pending Approval------------------Please confirm my deposit.','::1',NULL,'2026-02-18 09:05:05'), -(14,2,NULL,'user','[WITHDRAWAL REQUEST]------------------Type: Fiat WithdrawalAmount: 100.00 USDTRate: 1 USDT = 1 USDTo Receive: 100.00 USD------------------Please process my fiat withdrawal.','::1',NULL,'2026-02-18 09:06:13'), -(15,2,1,'admin','2222','::1',NULL,'2026-02-18 09:21:27'), -(16,2,NULL,'user','2222','::1',NULL,'2026-02-18 09:21:34'), -(17,2,NULL,'user','1','::1',NULL,'2026-02-18 09:21:37'), -(18,2,1,'admin','123','::1',NULL,'2026-02-18 09:25:25'), -(19,2,NULL,'user','321','::1',NULL,'2026-02-18 09:25:32'), -(20,2,NULL,'user','recharge_msg_fiat','::1',NULL,'2026-02-18 09:26:52'), -(21,2,NULL,'user','withdraw_msg_fiat','::1',NULL,'2026-02-18 09:27:38'), -(22,2,NULL,'user','用户ID:05617613 申请充值金额:1000 SGD=1.34USDT','::1',NULL,'2026-02-18 11:17:06'), -(23,2,1,'admin','1','::1',NULL,'2026-02-18 11:17:41'), -(24,2,NULL,'user','用户ID:05617613 申请提现金额:1000.00 MYR=4.77USDT','::1',NULL,'2026-02-18 11:18:24'), -(25,2,NULL,'user','用户ID:05617613 申请充值金额:1000 USDT (TRC20)','::1',NULL,'2026-02-18 11:21:13'), -(26,2,NULL,'user','用户ID:05617613 申请充值金额:1000 SGD=746.2687USDT','::1',NULL,'2026-02-18 11:41:32'), -(28,2,NULL,'user','用户ID:05617613 申请充值金额:50000 MYR=12820.5128泰达币','::1',NULL,'2026-02-18 15:20:00'), -(29,2,NULL,'user','用户ID:05617613 申请提现金额:4000.00 USDT=4000.00 USD','::1',NULL,'2026-02-19 02:14:38'), -(30,2,NULL,'user','用户ID:05617613 申请充值金额:10000 CNY=1447.1780 USDT','::1',NULL,'2026-02-19 02:17:28'), -(31,2,NULL,'user','用户ID:05617613 申请提现金额:857.00 USDT=132337.94 JPY','::1',NULL,'2026-02-19 02:22:08'), -(32,2,NULL,'user','用户ID:05617613 申请充值金额:100000 TWD=3177.6295 USDT','::1',NULL,'2026-02-19 02:22:41'), -(33,2,NULL,'user','2222','45.201.166.50',NULL,'2026-02-19 02:40:51'), -(34,2,NULL,'user','用户ID:05617613 申请提现金额:21000.00 USDT=21000.00 USD','45.201.166.50',NULL,'2026-02-19 02:42:12'), -(35,2,NULL,'user','用户ID:05617613 申请充值金额:20000 USD=20000.0000 USDT','45.201.166.50',NULL,'2026-02-19 07:07:28'), -(36,2,NULL,'user','1233344','45.201.166.50',NULL,'2026-02-19 11:06:33'), -(37,2,NULL,'user','对的得到','45.201.166.50',NULL,'2026-02-19 11:07:41'), -(38,2,1,'admin','如发了','45.201.166.50',NULL,'2026-02-19 11:07:48'), -(39,2,NULL,'user','你好手上','45.201.166.50',NULL,'2026-02-19 11:18:15'), -(40,2,1,'admin','是是是','45.201.166.50',NULL,'2026-02-19 11:18:27'), -(41,2,NULL,'user','00090','45.201.166.50',NULL,'2026-02-19 11:32:53'), -(42,2,1,'admin','222','45.201.166.50',NULL,'2026-02-19 11:33:12'), -(43,2,NULL,'user','你好吗','45.201.166.50',NULL,'2026-02-20 05:57:32'), -(44,2,1,'admin','111','0',NULL,'2026-02-20 05:58:24'), -(45,2,NULL,'user','百年建党撒活动','45.201.166.50',NULL,'2026-02-20 05:58:34'), -(46,2,NULL,'user','在吗','45.201.166.50',NULL,'2026-02-20 06:09:36'), -(47,2,1,'admin','在的','0',NULL,'2026-02-20 06:09:47'), -(48,2,NULL,'user','少时诵诗书','45.201.166.50',NULL,'2026-02-20 06:10:30'), -(49,2,NULL,'user','321','45.201.166.50',NULL,'2026-02-20 06:15:24'), -(50,2,NULL,'user','你好吗','45.201.166.50',NULL,'2026-02-20 06:27:35'), -(52,2,NULL,'user','5156156563','45.201.166.50',NULL,'2026-02-20 06:28:01'), -(55,2,NULL,'user','少时诵诗书','45.201.166.50',NULL,'2026-02-20 06:36:55'), -(57,2,NULL,'user','我在的','45.201.166.50',NULL,'2026-02-20 06:43:39'); -/*!40000 ALTER TABLE `messages` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `price_controls` -- - DROP TABLE IF EXISTS `price_controls`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `price_controls` ( `id` int(11) NOT NULL AUTO_INCREMENT, `symbol` varchar(20) NOT NULL, @@ -398,24 +180,11 @@ CREATE TABLE `price_controls` ( `created_at` timestamp NULL DEFAULT current_timestamp(), PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `price_controls` --- - -LOCK TABLES `price_controls` WRITE; -/*!40000 ALTER TABLE `price_controls` DISABLE KEYS */; -/*!40000 ALTER TABLE `price_controls` ENABLE KEYS */; -UNLOCK TABLES; -- -- Table structure for table `spot_orders` -- - DROP TABLE IF EXISTS `spot_orders`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `spot_orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -429,24 +198,11 @@ CREATE TABLE `spot_orders` ( `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `spot_orders` --- - -LOCK TABLES `spot_orders` WRITE; -/*!40000 ALTER TABLE `spot_orders` DISABLE KEYS */; -/*!40000 ALTER TABLE `spot_orders` ENABLE KEYS */; -UNLOCK TABLES; -- -- Table structure for table `staking_records` -- - DROP TABLE IF EXISTS `staking_records`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `staking_records` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -463,40 +219,19 @@ CREATE TABLE `staking_records` ( `last_settle_time` datetime DEFAULT NULL, `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `staking_records` --- - -LOCK TABLES `staking_records` WRITE; -/*!40000 ALTER TABLE `staking_records` DISABLE KEYS */; -INSERT INTO `staking_records` VALUES -(1,2,'ETH矿池',3.00000000,0.00000000,'ETH',0.02,0,'running','2026-02-20','2099-12-31','2026-02-20 05:29:16','2026-02-20 05:29:16',NULL); -/*!40000 ALTER TABLE `staking_records` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `system_settings` -- - DROP TABLE IF EXISTS `system_settings`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `system_settings` ( `setting_key` varchar(50) NOT NULL, `setting_value` text DEFAULT NULL, PRIMARY KEY (`setting_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `system_settings` --- LOCK TABLES `system_settings` WRITE; -/*!40000 ALTER TABLE `system_settings` DISABLE KEYS */; INSERT INTO `system_settings` VALUES ('android_download_url','/downloads/byro.apk'), ('apk_download_url','/downloads/byro.apk'), @@ -518,16 +253,12 @@ INSERT INTO `system_settings` VALUES ('usdt_protocol','TRC20'), ('usdt_recharge_address',''), ('usdt_trc20_address','TYv9V5J1P1eEwz7y3WqJg9M2yv7f7xXv3x'); -/*!40000 ALTER TABLE `system_settings` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `transactions` -- - DROP TABLE IF EXISTS `transactions`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `transactions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -538,75 +269,12 @@ CREATE TABLE `transactions` ( `created_at` timestamp NULL DEFAULT current_timestamp(), `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `transactions` --- - -LOCK TABLES `transactions` WRITE; -/*!40000 ALTER TABLE `transactions` DISABLE KEYS */; -INSERT INTO `transactions` VALUES -(1,1,'deposit',5000.00000000,'USDT','completed','2026-02-15 15:40:31',NULL), -(2,1,'deposit',1000.00000000,'USDT','completed','2026-02-15 15:45:53',NULL), -(3,2,'recharge',209.64000000,'USDT','completed','2026-02-18 04:46:29',NULL), -(4,2,'recharge',10.00000000,'USDT','completed','2026-02-18 06:16:15',NULL), -(5,2,'recharge',10.00000000,'USDT','completed','2026-02-18 06:33:17',NULL), -(6,2,'recharge',10.00000000,'USDT','completed','2026-02-18 06:38:22',NULL), -(7,2,'recharge',209.64000000,'USDT','completed','2026-02-18 06:54:16',NULL), -(8,2,'withdrawal',9249.28000000,'USDT',0,'2026-02-18 06:54:44',NULL), -(9,2,'recharge',10000.00000000,'USDT','completed','2026-02-18 06:56:45',NULL), -(10,2,'recharge',100.00000000,'USDT','completed','2026-02-18 07:10:11',NULL), -(11,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(12,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(13,2,'binary_win',1080.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(14,2,'binary_win',540.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(15,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(16,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(17,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(18,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(19,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(20,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(21,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(22,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:03:35',NULL), -(23,2,'withdrawal',1000.00000000,'USDT','completed','2026-02-18 08:13:47',NULL), -(24,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:38:40',NULL), -(25,2,'recharge',100.00000000,'USDT','completed','2026-02-18 09:05:52',NULL), -(26,2,'withdrawal',100.00000000,'USDT','completed','2026-02-18 09:06:13',NULL), -(27,2,'recharge',209.64000000,'USDT','completed','2026-02-18 09:27:12',NULL), -(28,2,'withdrawal',700.00000000,'USDT','completed','2026-02-18 09:27:38',NULL), -(29,2,'withdrawal',1000.00000000,'USDT','completed','2026-02-18 11:18:24',NULL), -(30,2,'recharge',746.27000000,'USDT','completed','2026-02-18 11:18:57',NULL), -(31,2,'recharge',1000.00000000,'USDT','completed','2026-02-18 11:21:33',NULL), -(32,2,'recharge',746.26865672,'USDT','completed','2026-02-18 11:41:46',NULL), -(33,2,'binary_win',1080.00000000,'USDT','completed','2026-02-18 15:17:14',NULL), -(34,2,'recharge',12820.51282051,'USDT','completed','2026-02-18 15:20:45',NULL), -(35,2,'withdrawal',4000.00000000,'USDT','completed','2026-02-19 02:14:37',NULL), -(36,2,'recharge',1447.17800289,'USDT','completed','2026-02-19 02:17:53',NULL), -(37,2,'withdrawal',857.00000000,'USDT','completed','2026-02-19 02:22:07',NULL), -(38,2,'withdrawal',21000.00000000,'USDT','completed','2026-02-19 02:42:12',NULL), -(39,2,'recharge',3177.62948840,'USDT','completed','2026-02-19 02:42:46',NULL), -(40,2,'recharge',20000.00000000,'USDT','completed','2026-02-19 07:07:42',NULL), -(41,2,'binary_win',25760.00000000,'USDT','completed','2026-02-19 07:24:01',NULL), -(42,2,'binary_win',1080.00000000,'USDT','completed','2026-02-19 07:27:41',NULL), -(43,2,'binary_loss',1000.00000000,'USDT','completed','2026-02-19 07:29:22',NULL), -(44,2,'swap',10000.00000000,'USDT','completed','2026-02-20 05:26:38',NULL), -(45,2,'mining',3.00000000,'ETH','completed','2026-02-20 05:29:16',NULL), -(46,2,'swap',5000.00000000,'USDT','completed','2026-02-20 05:34:45',NULL), -(47,2,'swap',4.00000000,'ETH','completed','2026-02-20 05:35:13',NULL), -(48,2,'swap',872.00000000,'USDT','completed','2026-02-20 05:37:53',NULL), -(49,2,'swap',7000.00000000,'USDT','completed','2026-02-20 05:41:14',NULL); -/*!40000 ALTER TABLE `transactions` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `user_balances` -- - DROP TABLE IF EXISTS `user_balances`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `user_balances` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -615,29 +283,12 @@ CREATE TABLE `user_balances` ( `frozen` decimal(20,8) DEFAULT 0.00000000, PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`,`symbol`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `user_balances` --- - -LOCK TABLES `user_balances` WRITE; -/*!40000 ALTER TABLE `user_balances` DISABLE KEYS */; -INSERT INTO `user_balances` VALUES -(1,1,'USDT',6000.00000000,0.00000000), -(6,2,'USDT',10000.33896852,0.00000000), -(7,2,'ETH',4.71475437,3.00000000); -/*!40000 ALTER TABLE `user_balances` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `users` -- - DROP TABLE IF EXISTS `users`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) DEFAULT NULL, @@ -667,21 +318,9 @@ CREATE TABLE `users` ( UNIQUE KEY `username` (`username`), UNIQUE KEY `email` (`email`), UNIQUE KEY `uid` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; --- --- Dumping data for table `users` --- - -LOCK TABLES `users` WRITE; -/*!40000 ALTER TABLE `users` DISABLE KEYS */; -INSERT INTO `users` VALUES -(2,'ahao8988998','ahao8988@gmail.com','$2y$10$tdT4vIgddq1kh2isoBRIPe4goiZ3X1cbf2l6vtButmyZx71xP527q','2026-02-18 02:56:51','05617613',80,0,'user',0,0.0000,NULL,'张世豪','123456789','uploads/kyc/2_front_1771391536.jpg','uploads/kyc/2_back_1771391536.jpg','uploads/kyc/2_handheld_1771391536.jpg',2,NULL,'normal',1,'',NULL,NULL); -/*!40000 ALTER TABLE `users` ENABLE KEYS */; -UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; @@ -689,5 +328,3 @@ UNLOCK TABLES; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2026-02-20 7:10:01 diff --git a/db/exchange_rates.json b/db/exchange_rates.json deleted file mode 100644 index 36ac5df..0000000 --- a/db/exchange_rates.json +++ /dev/null @@ -1 +0,0 @@ -{"USD":1,"AED":3.6725,"AFN":62.904711,"ALL":81.771589,"AMD":376.973964,"ANG":1.79,"AOA":921.259103,"ARS":1452.25,"AUD":1.415042,"AWG":1.79,"AZN":1.70114,"BAM":1.660964,"BBD":2,"BDT":122.265987,"BGN":1.645409,"BHD":0.376,"BIF":2972.94695,"BMD":1,"BND":1.267892,"BOB":6.940242,"BRL":5.214159,"BSD":1,"BTN":90.963772,"BWP":13.609743,"BYN":2.856494,"BZD":2,"CAD":1.368325,"CDF":2281.704127,"CHF":0.775885,"CLF":0.021871,"CLP":864.50335,"CNH":6.901452,"CNY":6.924226,"COP":3676.84265,"CRC":482.13856,"CUP":24,"CVE":93.641164,"CZK":20.586135,"DJF":177.721,"DKK":6.336892,"DOP":61.680478,"DZD":130.057024,"EGP":47.551592,"ERN":15,"ETB":154.853271,"EUR":0.849238,"FJD":2.19658,"FKP":0.742016,"FOK":6.336891,"GBP":0.742017,"GEL":2.675699,"GGP":0.742016,"GHS":10.967993,"GIP":0.742016,"GMD":74.121585,"GNF":8763.955771,"GTQ":7.684123,"GYD":209.233373,"HKD":7.814823,"HNL":26.499845,"HRK":6.398579,"HTG":131.27553,"HUF":322.619982,"IDR":16878.674588,"ILS":3.12571,"IMP":0.742016,"INR":90.97147,"IQD":1310.750159,"IRR":1284674.487042,"ISK":123.114577,"JEP":0.742016,"JMD":156.074498,"JOD":0.709,"JPY":155.142068,"KES":128.972179,"KGS":87.445847,"KHR":4018.27258,"KID":1.415036,"KMF":417.797424,"KRW":1447.954091,"KWD":0.306704,"KYD":0.833333,"KZT":492.715249,"LAK":21646.894902,"LBP":89500,"LKR":309.299403,"LRD":185.939296,"LSL":16.078974,"LYD":6.309079,"MAD":9.166742,"MDL":17.078774,"MGA":4324.001599,"MKD":52.399289,"MMK":2105.705234,"MNT":3540.048956,"MOP":8.049267,"MRU":40.007857,"MUR":46.294283,"MVR":15.461054,"MWK":1744.797815,"MXN":17.171075,"MYR":3.904187,"MZN":63.566886,"NAD":16.078974,"NGN":1346.18588,"NIO":36.868971,"NOK":9.541676,"NPR":145.542035,"NZD":1.674568,"OMR":0.384497,"PAB":1,"PEN":3.357835,"PGK":4.334138,"PHP":58.082763,"PKR":279.926948,"PLN":3.584799,"PYG":6536.206078,"QAR":3.64,"RON":4.331594,"RSD":99.713133,"RUB":76.827629,"RWF":1461.881521,"SAR":3.75,"SBD":7.960413,"SCR":13.875248,"SDG":508.876436,"SEK":9.064329,"SGD":1.267892,"SHP":0.742016,"SLE":24.455372,"SLL":24455.372018,"SOS":570.820515,"SRD":37.719144,"SSP":4582.8864,"STN":20.806317,"SYP":114.081388,"SZL":16.078974,"THB":31.181157,"TJS":9.390341,"TMT":3.499984,"TND":2.869949,"TOP":2.36102,"TRY":43.863286,"TTD":6.752101,"TVD":1.415036,"TWD":31.538255,"TZS":2578.951004,"UAH":43.30399,"UGX":3566.316332,"UYU":38.809648,"UZS":12205.508723,"VES":405.3518,"VND":25903.901866,"VUV":118.665876,"WST":2.685744,"XAF":557.063232,"XCD":2.7,"XCG":1.79,"XDR":0.727367,"XOF":557.063232,"XPF":101.3412,"YER":238.655171,"ZAR":16.079081,"ZMW":18.817496,"ZWG":25.5384,"ZWL":25.5384} \ No newline at end of file diff --git a/includes/lang.php b/includes/lang.php index 6be3ff6..bc617d4 100644 --- a/includes/lang.php +++ b/includes/lang.php @@ -56,6 +56,7 @@ $translations = [ 'resend' => '重新发送', 'send_failed' => '发送失败', 'invalid_email' => '无效的邮箱地址', + 'invalid_mobile' => '无效的手机号码', 'congrats_won' => '恭喜你获利', 'sorry_lost' => '很遗憾亏损', 'trade_won' => '交易获利', @@ -671,6 +672,7 @@ $translations = [ 'resend' => 'Resend', 'send_failed' => 'Send Failed', 'invalid_email' => 'Invalid Email', + 'invalid_mobile' => 'Invalid Mobile Number', 'congrats_won' => 'Congrats, you won', 'sorry_lost' => 'Sorry, you lost', 'trade_won' => 'Trade Profit', diff --git a/recharge.php b/recharge.php index 9eedc5a..f88add9 100644 --- a/recharge.php +++ b/recharge.php @@ -206,22 +206,22 @@ $bep20_addr = $settings['usdt_bep20_address'] ?? '0x742d35Cc6634C0532925a3b844Bc
- +
-

-

- +

+

+ 为保障资金安全及订单唯一性,每笔充值均采用独立账户匹配机制。
请您耐心等待匹配完成,请勿刷新或关闭当前页面,以免影响订单状态同步。' : 'Your recharge request has been submitted. The system is matching an exclusive receiving account for you.
To ensure fund security and order uniqueness, each recharge uses an independent matching mechanism.
Please wait patiently and do not refresh or close this page.' ?>

-
+
-
+
@@ -233,25 +233,25 @@ $bep20_addr = $settings['usdt_bep20_address'] ?? '0x742d35Cc6634C0532925a3b844Bc
- +
- +
- +
- +
@@ -587,6 +587,7 @@ function renderRechargeUI(data) { if (!side) return; const status = String(data.status || '0'); + const isZh = '' === 'zh'; if (status === 'completed' || status === '3') { setTimeout(() => finishTransferUI(), 500); @@ -598,18 +599,18 @@ function renderRechargeUI(data) {
- 审核未通过 + ${isZh ? '审核未通过' : 'Audit Failed'}
-

充值申请被拒绝

-

您的充值申请未能通过审核。
可能由于转账信息不匹配或未收到款项。
如有疑问,请咨询在线客服。

+

${isZh ? '充值申请被拒绝' : 'Recharge Request Rejected'}

+

${isZh ? '您的充值申请未能通过审核。
可能由于转账信息不匹配或未收到款项。
如有疑问,请咨询在线客服。' : 'Your recharge request failed audit.
Possible mismatch in transfer info or payment not received.
Please contact support if you have questions.'}

-
温馨提示
+
${isZh ? '温馨提示' : 'Safety Tips'}
-
请检查您的转账金额和凭证。
-
您可以重新发起充值申请。
+
${isZh ? '请检查您的转账金额和凭证。' : 'Please check your transfer amount and receipt.'}
+
${isZh ? '您可以重新发起充值申请。' : 'You can initiate a new recharge request.'}
-
+
`; return; @@ -620,27 +621,31 @@ function renderRechargeUI(data) {
- 正在为您匹配充值账户 + ${isZh ? '账户匹配中…' : 'Account Matching...'}
-

正在为您匹配充值账户

-

系统正在为您分配专属收款账户,请耐心等待。
匹配成功后,页面将自动更新收款信息。
请勿关闭当前页面。

+

${isZh ? '充值订单已生成' : 'Recharge Order Generated'}

+

+ ${isZh ? '您的充值申请已成功提交,系统正在为您智能匹配本次订单的专属收款账户。
为保障资金安全及订单唯一性,每笔充值均采用独立账户匹配机制。
请您耐心等待匹配完成,请勿刷新或关闭当前页面,以免影响订单状态同步。' : 'Your recharge request has been submitted. The system is matching an exclusive receiving account for you.
To ensure fund security and order uniqueness, each recharge uses an independent matching mechanism.
Please wait patiently and do not refresh or close this page.'} +

-
+
${isZh ? '预计匹配剩余时间' : 'Estimated Matching Time'}
+
+
${isZh ? '当前状态:账户匹配中…' : 'Current Status: Account Matching...'}
+
-
-
+
+
${isZh ? '温馨提示' : 'Safety Tips'}
-
-
-
+
${isZh ? '请使用您本人实名账户进行转账。' : 'Please use your own real-name account for transfer.'}
+
${isZh ? '转账金额必须与订单金额一致。' : 'Transfer amount must match order amount.'}
-
+
`; } else if (status === 'matched' || status === '1') { @@ -648,22 +653,27 @@ function renderRechargeUI(data) {
- 匹配成功 + ${isZh ? '匹配成功' : 'Matched Successfully'}
-

匹配成功

-

您的充值订单已匹配成功。
客服正在为您发送收款账户信息,请稍候。
页面将自动显示收款账户,请勿刷新或关闭页面。

+

${isZh ? '专属充值账户已匹配成功' : 'Exclusive Account Matched'}

+

+ ${isZh ? '系统已成功为您分配本次订单的专属收款账户。
请严格按照下方显示的账户信息及金额进行转账操作。
本账户仅限本次订单使用,请勿重复转账或向其他账户付款。' : 'The system has assigned an exclusive receiving account for this order.
Please strictly follow the account info and amount shown below for transfer.
This account is for this order only. Do not pay multiple times.'} +

-
+
${isZh ? '等待支付剩余时间' : 'Payment Time Remaining'}
+
+
${isZh ? '当前状态:匹配成功,等待分配转账账户' : 'Status: Matched, waiting for account details'}
+
-
-
+
${isZh ? '温馨提示' : 'Safety Tips'}
+
`; } else if (status === 'account_sent' || status === '2') { @@ -673,74 +683,64 @@ function renderRechargeUI(data) { side.innerHTML = `
-
账户已送达
-

请按照以下账户信息进行转账

+
${isZh ? '账户已送达' : 'Account Received'}
+

${isZh ? '转账操作说明' : 'Transfer Instructions'}

-
+
${isZh ? '收款银行' : 'Receiving Bank'}:
${bank}
- +
-
+
${isZh ? '收款账号' : 'Account Number'}:
${account}
- +
-
+
${isZh ? '收款姓名' : 'Receiver Name'}:
${name}
- +
-
-
-
-
- -
-
-
-
-
+
+
${isZh ? '操作须知' : 'Operating Instructions'}
+
+

${isZh ? '为确保资金顺利到账,请注意以下事项:' : 'To ensure successful deposit, please note:'}

+
1️⃣ ${isZh ? '请使用您本人实名账户进行转账。' : 'Use your own real-name account.'}
+
2️⃣ ${isZh ? '转账金额必须与订单金额完全一致,不可多转或少转。' : 'Amount must exactly match order amount.'}
+
3️⃣ ${isZh ? '请勿修改订单备注信息(如系统有指定备注,请严格填写)。' : 'Do not modify order remarks (if any).'}
+
4️⃣ ${isZh ? '转账完成后,请保留转账凭证需要提交凭证平台核查。' : 'Keep transfer receipt for verification.'}
+

${isZh ? '系统将在收到银行到账后自动进行匹配确认。' : 'System will auto-confirm after bank arrival.'}

-

请严格按照页面展示的收款账户信息进行转账。
请勿分笔转账或修改信息,转账完成后,请点击“完成转账”按钮。
转账完成后请提交转账凭证给在线客服,方便第一时间为您确认到账。

- +
`; } else if (status === 'finished') { side.innerHTML = `
- 等待审核中 -
-

已提交,等待审核

-

您的充值申请已成功提交,正在等待管理员核对资金。
审核通过后,资金将自动存入您的账户。
请耐心等待,通常需要 1-5 分钟。

-
-
-
-
-
预计审核剩余时间
-
正在核对资金...
-
+ ${isZh ? '等待审核中' : 'Awaiting Review'}
+

${isZh ? '已提交,等待审核' : 'Submitted, Awaiting Review'}

+

${isZh ? '您的充值申请已成功提交,正在等待管理员核对资金。
审核通过后,资金将自动存入您的账户。
请耐心等待,通常需要 1-5 分钟。' : 'Your application is submitted. Waiting for admin to verify funds.
Funds will be deposited automatically after approval.
Please wait, usually takes 1-5 mins.'}

-
温馨提示
+
${isZh ? '温馨提示' : 'Safety Tips'}
-
转账完成后,请务必保留转账截图凭证。
-
如有任何疑问,请联系在线客服咨询。
+
${isZh ? '转账完成后,请务必保留转账截图凭证。' : 'Keep your transfer screenshot/receipt.'}
+
${isZh ? '如有任何疑问,请联系在线客服咨询。' : 'Contact support for any questions.'}
-
+
`; } diff --git a/uploads/kyc/2_back_1771391536.jpg b/uploads/kyc/2_back_1771391536.jpg deleted file mode 100644 index cacd3a9..0000000 Binary files a/uploads/kyc/2_back_1771391536.jpg and /dev/null differ diff --git a/uploads/kyc/2_front_1771391536.jpg b/uploads/kyc/2_front_1771391536.jpg deleted file mode 100644 index cacd3a9..0000000 Binary files a/uploads/kyc/2_front_1771391536.jpg and /dev/null differ diff --git a/uploads/kyc/2_handheld_1771391536.jpg b/uploads/kyc/2_handheld_1771391536.jpg deleted file mode 100644 index cacd3a9..0000000 Binary files a/uploads/kyc/2_handheld_1771391536.jpg and /dev/null differ