注册修复好
This commit is contained in:
parent
4f543a3144
commit
c01e1e9963
@ -162,24 +162,26 @@ include __DIR__ . '/../includes/header.php';
|
||||
<?php else: ?>
|
||||
|
||||
<ul class="nav nav-pills nav-justified mb-4 bg-black p-1 rounded-pill" id="regTab" role="tablist" style="background: #0b0e11 !important;">
|
||||
<?php if ($mobile_verify_enabled): ?>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link active rounded-pill py-2" data-bs-toggle="pill" type="button" onclick="setRegType('username')"><?= __('mobile_recovery') ?></button>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link rounded-pill py-2" data-bs-toggle="pill" type="button" onclick="setRegType('email')"><?= __('email_recovery') ?></button>
|
||||
<button class="nav-link <?= !$mobile_verify_enabled ? 'active' : '' ?> rounded-pill py-2" data-bs-toggle="pill" type="button" onclick="setRegType('email')"><?= __('email_recovery') ?></button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<form method="POST">
|
||||
<input type="hidden" name="reg_type" id="reg_type" value="username">
|
||||
<input type="hidden" name="reg_type" id="reg_type" value="<?= $mobile_verify_enabled ? 'username' : 'email' ?>">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted small fw-bold" id="account-label"><?= __('mobile_number') ?></label>
|
||||
<input type="text" name="account" id="account-input" class="form-control py-3 px-4 rounded-4" placeholder="<?= __('mobile_number') ?>" required>
|
||||
<label class="form-label text-muted small fw-bold" id="account-label"><?= $mobile_verify_enabled ? __('mobile_number') : __('email') ?></label>
|
||||
<input type="<?= $mobile_verify_enabled ? 'text' : 'email' ?>" name="account" id="account-input" class="form-control py-3 px-4 rounded-4" placeholder="<?= $mobile_verify_enabled ? __('mobile_number') : __('email_placeholder') ?>" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted small fw-bold" id="verify-label"><?= __('mobile_verify') ?></label>
|
||||
<label class="form-label text-muted small fw-bold" id="verify-label"><?= $mobile_verify_enabled ? __('mobile_verify') : __('email_verify') ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" name="verify_code" class="form-control py-3 px-4 rounded-start-4" required>
|
||||
<button class="btn btn-outline-primary px-3 rounded-end-4" type="button" id="sendBtn" onclick="sendCode()"><?= __('send_code') ?></button>
|
||||
@ -253,7 +255,6 @@ function sendCode() {
|
||||
if (!res.ok) throw new Error('Network error: ' + res.status);
|
||||
return res.text().then(text => {
|
||||
try {
|
||||
// Try to extract JSON if there are warnings/notices
|
||||
const jsonStart = text.indexOf('{');
|
||||
const jsonEnd = text.lastIndexOf('}');
|
||||
if (jsonStart !== -1 && jsonEnd !== -1) {
|
||||
@ -261,8 +262,7 @@ function sendCode() {
|
||||
}
|
||||
return JSON.parse(text);
|
||||
} catch(e) {
|
||||
console.error('Raw response:', text);
|
||||
throw new Error('Invalid server response. Please check PHP 8.1 logs.');
|
||||
throw new Error('Invalid server response.');
|
||||
}
|
||||
});
|
||||
})
|
||||
@ -286,7 +286,6 @@ function sendCode() {
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
alert('Error: ' + err.message);
|
||||
btn.disabled = false;
|
||||
btn.innerText = oldText;
|
||||
@ -294,4 +293,4 @@ function sendCode() {
|
||||
}
|
||||
</script>
|
||||
|
||||
<?php include __DIR__ . '/../includes/footer.php'; ?>
|
||||
<?php include __DIR__ . '/../includes/footer.php'; ?>
|
||||
@ -203,25 +203,27 @@ include __DIR__ . '/../includes/header.php';
|
||||
<?php endif; ?>
|
||||
|
||||
<ul class="nav nav-pills nav-justified mb-4 bg-black p-1 rounded-pill" id="regTab" role="tablist" style="background: #0b0e11 !important;">
|
||||
<?php if ($mobile_verify_enabled): ?>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link active rounded-pill py-2" id="username-tab" data-bs-toggle="pill" data-bs-target="#username-reg" type="button" onclick="setRegType('username')"><?= __('mobile_reg') ?></button>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link rounded-pill py-2" id="email-tab" data-bs-toggle="pill" data-bs-target="#email-reg" type="button" onclick="setRegType('email')"><?= __('email_reg') ?></button>
|
||||
<button class="nav-link <?= !$mobile_verify_enabled ? 'active' : '' ?> rounded-pill py-2" id="email-tab" data-bs-toggle="pill" data-bs-target="#email-reg" type="button" onclick="setRegType('email')"><?= __('email_reg') ?></button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<form method="POST" id="registerForm">
|
||||
<input type="hidden" name="reg_type" id="reg_type" value="username">
|
||||
<input type="hidden" name="reg_type" id="reg_type" value="<?= $mobile_verify_enabled ? 'username' : 'email' ?>">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted small fw-bold" id="account-label"><?= __('mobile_number') ?></label>
|
||||
<input type="text" name="account" id="account-input" class="form-control bg-black border-secondary text-white py-3 px-4 rounded-4" style="background: #0b0e11 !important; border-color: #2b3139 !important;" placeholder="<?= __('mobile_number') ?>" required>
|
||||
<label class="form-label text-muted small fw-bold" id="account-label"><?= $mobile_verify_enabled ? __('mobile_number') : __('email') ?></label>
|
||||
<input type="<?= $mobile_verify_enabled ? 'text' : 'email' ?>" name="account" id="account-input" class="form-control bg-black border-secondary text-white py-3 px-4 rounded-4" style="background: #0b0e11 !important; border-color: #2b3139 !important;" placeholder="<?= $mobile_verify_enabled ? __('mobile_number') : __('email_placeholder') ?>" required>
|
||||
</div>
|
||||
|
||||
<div id="verify-box" style="display: <?= ($email_verify_enabled || $mobile_verify_enabled) ? 'block' : 'none' ?>;">
|
||||
<div id="verify-box" style="display: <?= ($mobile_verify_enabled || $email_verify_enabled) ? 'block' : 'none' ?>;">
|
||||
<div class="mb-3" id="verify-field-box">
|
||||
<label class="form-label text-muted small fw-bold" id="verify-label"><?= __('mobile_verify') ?></label>
|
||||
<label class="form-label text-muted small fw-bold" id="verify-label"><?= $mobile_verify_enabled ? __('mobile_verify') : __('email_verify') ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" name="verify_code" class="form-control bg-black border-secondary text-white py-3 px-4 rounded-start-4" style="background: #0b0e11 !important; border-color: #2b3139 !important;">
|
||||
<button class="btn btn-outline-primary px-3 rounded-end-4" type="button" id="sendBtn" onclick="sendCode()"><?= __('send_code') ?></button>
|
||||
@ -308,7 +310,6 @@ function sendCode() {
|
||||
if (!res.ok) throw new Error('Network error: ' + res.status);
|
||||
return res.text().then(text => {
|
||||
try {
|
||||
// Try to extract JSON if there are warnings/notices
|
||||
const jsonStart = text.indexOf('{');
|
||||
const jsonEnd = text.lastIndexOf('}');
|
||||
if (jsonStart !== -1 && jsonEnd !== -1) {
|
||||
@ -316,8 +317,7 @@ function sendCode() {
|
||||
}
|
||||
return JSON.parse(text);
|
||||
} catch(e) {
|
||||
console.error('Raw response:', text);
|
||||
throw new Error('Invalid server response. Please check PHP 8.1 logs.');
|
||||
throw new Error('Invalid server response.');
|
||||
}
|
||||
});
|
||||
})
|
||||
@ -341,7 +341,6 @@ function sendCode() {
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
alert('Error: ' + err.message);
|
||||
btn.disabled = false;
|
||||
btn.innerText = oldText;
|
||||
@ -349,4 +348,4 @@ function sendCode() {
|
||||
}
|
||||
</script>
|
||||
|
||||
<?php include __DIR__ . '/../includes/footer.php'; ?>
|
||||
<?php include __DIR__ . '/../includes/footer.php'; ?>
|
||||
@ -49,10 +49,6 @@ if (isset($_SESSION['user_id'])) {
|
||||
});
|
||||
};
|
||||
window.APP_ROOT = '<?= (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]" ?>';
|
||||
// In case of subdirectory deployment, we can try to guess or let the user define it.
|
||||
// For now, let's assume relative to root is safer if we use a leading slash
|
||||
// BUT if it's in a subdirectory, leading slash won't work.
|
||||
// A better way is to use a relative path from the current PHP file to the root.
|
||||
<?php
|
||||
$depth = substr_count(trim($_SERVER['PHP_SELF'], '/'), '/');
|
||||
$relRoot = str_repeat('../', $depth);
|
||||
@ -106,16 +102,6 @@ if (isset($_SESSION['user_id'])) {
|
||||
filter: drop-shadow(0 0 12px rgba(0, 194, 255, 0.8));
|
||||
transform: scale(1.05);
|
||||
}
|
||||
.logo-icon {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
background: var(--primary);
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.logo-text {
|
||||
display: inline-block;
|
||||
font-size: 15px;
|
||||
@ -127,13 +113,6 @@ if (isset($_SESSION['user_id'])) {
|
||||
vertical-align: middle;
|
||||
text-shadow: 0 0 10px rgba(0, 194, 255, 0.3);
|
||||
}
|
||||
.logo-container img {
|
||||
height: 24px;
|
||||
width: auto;
|
||||
object-fit: contain;
|
||||
filter: drop-shadow(0 0 8px rgba(0, 194, 255, 0.5));
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
nav {
|
||||
display: flex;
|
||||
gap: 24px;
|
||||
@ -193,7 +172,7 @@ if (isset($_SESSION['user_id'])) {
|
||||
.lang-dropdown {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: calc(100% + 10px);
|
||||
top: 100%;
|
||||
right: 0;
|
||||
background: #121212;
|
||||
border: 1px solid var(--border);
|
||||
@ -202,8 +181,10 @@ if (isset($_SESSION['user_id'])) {
|
||||
min-width: 160px;
|
||||
box-shadow: 0 10px 30px rgba(0,0,0,0.8);
|
||||
z-index: 1100;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.lang-switcher:hover .lang-dropdown {
|
||||
.lang-switcher:hover .lang-dropdown,
|
||||
.lang-dropdown:hover {
|
||||
display: block;
|
||||
}
|
||||
.lang-dropdown a {
|
||||
@ -280,7 +261,6 @@ if (isset($_SESSION['user_id'])) {
|
||||
}
|
||||
}
|
||||
|
||||
/* User Dropdown */
|
||||
.user-center {
|
||||
position: relative;
|
||||
}
|
||||
@ -303,7 +283,7 @@ if (isset($_SESSION['user_id'])) {
|
||||
.user-dropdown {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: calc(100% + 10px);
|
||||
top: 100%;
|
||||
right: 0;
|
||||
background: var(--surface);
|
||||
border: 1px solid var(--border);
|
||||
@ -312,8 +292,10 @@ if (isset($_SESSION['user_id'])) {
|
||||
padding: 16px;
|
||||
box-shadow: 0 10px 40px rgba(0,0,0,0.8);
|
||||
z-index: 1200;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.user-center:hover .user-dropdown {
|
||||
.user-center:hover .user-dropdown,
|
||||
.user-dropdown:hover {
|
||||
display: block;
|
||||
}
|
||||
.user-info-header {
|
||||
@ -375,65 +357,6 @@ if (isset($_SESSION['user_id'])) {
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
window.coinIcons = {
|
||||
'BTC': '1/small/bitcoin.png',
|
||||
'ETH': '279/small/ethereum.png',
|
||||
'USDT': '325/small/tether.png',
|
||||
'BNB': '825/small/binance-coin-logo.png',
|
||||
'SOL': '4128/small/solana.png',
|
||||
'XRP': '44/small/xrp-symbol-white-128.png',
|
||||
'ADA': '975/small/cardano.png',
|
||||
'DOGE': '5/small/dogecoin.png',
|
||||
'DOT': '12171/small/polkadot.png',
|
||||
'MATIC': '4713/small/matic-network.png',
|
||||
'AVAX': '12559/small/avalanche.png',
|
||||
'LINK': '877/small/chainlink.png',
|
||||
'SHIB': '11939/small/shiba-inu.png',
|
||||
'TRX': '1094/small/tron.png',
|
||||
'BCH': '153/small/bitcoin-cash.png',
|
||||
'LTC': '2/small/litecoin.png',
|
||||
'UNI': '12504/small/uniswap.png',
|
||||
'ARB': '29359/small/arbitrum.png',
|
||||
'OP': '25244/small/optimism.png',
|
||||
'APT': '27355/small/aptos.png',
|
||||
'USDC': '6319/small/usdc.png',
|
||||
'PEPE': '31386/small/pepe.png',
|
||||
'FIL': '12817/small/filecoin.png',
|
||||
'NEAR': '10365/small/near.png',
|
||||
'ATOM': '1481/small/cosmos.png',
|
||||
'IMX': '17233/small/immutable-x.png',
|
||||
'KAS': '26851/small/kaspa.png',
|
||||
'DAI': '992/small/dai.png',
|
||||
'STX': '2069/small/stacks.png',
|
||||
'RNDR': '11634/small/render-token.png',
|
||||
'INJ': '12882/small/injective_protocol.png',
|
||||
'TIA': '31967/small/tia.png',
|
||||
'SUI': '26375/small/sui-ocean-64.png',
|
||||
'SEI': '31322/small/sei.png',
|
||||
};
|
||||
function getCoinIconJs(symbol) {
|
||||
symbol = symbol.toUpperCase();
|
||||
const id = window.coinIcons[symbol];
|
||||
if (id) {
|
||||
return "https://coin-images.coingecko.com/coins/images/" + id;
|
||||
}
|
||||
// Fallback to Binance CDN
|
||||
return "https://bin.bnbstatic.com/static/images/home/market/coin-icon/" + symbol + ".png";
|
||||
}
|
||||
function handleIconError(img, symbol) {
|
||||
if (!img.triedOKX) {
|
||||
img.triedOKX = true;
|
||||
img.src = "https://static.okx.com/cdn/oksupport/asset/currency/icon/" + symbol.toLowerCase() + ".png";
|
||||
} else if (!img.triedCrypto) {
|
||||
img.triedCrypto = true;
|
||||
img.src = "https://assets.coincap.io/assets/icons/" + symbol.toLowerCase() + "@2x.png";
|
||||
} else {
|
||||
img.src = 'https://coin-images.coingecko.com/coins/images/1/small/bitcoin.png';
|
||||
img.onerror = null;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
@ -523,65 +446,5 @@ if (isset($_SESSION['user_id'])) {
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Lightbox for Chat Images -->
|
||||
<div id="chat-lightbox" class="chat-lightbox" onclick="this.classList.remove('active')">
|
||||
<img id="lightbox-img" src="" alt="Preview">
|
||||
</div>
|
||||
<style>
|
||||
.chat-lightbox {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0,0,0,0.9);
|
||||
z-index: 10001;
|
||||
display: none;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: zoom-out;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
.chat-lightbox.active {
|
||||
display: flex;
|
||||
opacity: 1;
|
||||
}
|
||||
.chat-lightbox img {
|
||||
max-width: 95%;
|
||||
max-height: 95%;
|
||||
object-fit: contain;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 0 30px rgba(0,0,0,0.5);
|
||||
transform: scale(0.9);
|
||||
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
.chat-lightbox.active img {
|
||||
transform: scale(1);
|
||||
}
|
||||
.chat-img-preview {
|
||||
cursor: zoom-in !important;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
.chat-img-preview:hover {
|
||||
transform: scale(1.02);
|
||||
filter: brightness(1.1);
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
window.showLightbox = function(src) {
|
||||
const lightbox = document.getElementById('chat-lightbox');
|
||||
const img = document.getElementById('lightbox-img');
|
||||
if (lightbox && img) {
|
||||
img.src = src;
|
||||
lightbox.classList.add('active');
|
||||
}
|
||||
};
|
||||
document.addEventListener('click', function(e) {
|
||||
if (e.target.classList.contains('chat-img-preview')) {
|
||||
window.showLightbox(e.target.src);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
x
Reference in New Issue
Block a user