Thông
Xin Chào , Tôi Là Huỳnh Gia Bảo Người Sáng Lập Ra Web Tick Xanh Free.
Tôi Xin Thông Báo Trang Web Tick Xanh Free Chỉ Là Trang Web Cung Cấp Ảnh Tài Khoản Tiktok Của Bạn Có Tick Xanh , Chứ Không Phải Tick Xanh Thật Đâu Nhé .
-Xin Cảm Ơn
Hiện Tại Chúng Tôi Đang Sử Dụng 2 Đường Liên Kết Để Vào Trang Web Của Chúng Tôi Là
-https://www.websitegame.work.gd [Liên Kết Nội Bộ]
-https://sites.google.com/view/hotrotaotickxanh/trang-ch%E1%BB%A7 [Liên Kết Chung]
Đây Là Các Tài Khoản Mạng Xã Hội Của Web
Tiktok : https://www.tiktok.com/@thinoaudio
FB : https://www.facebook.com/ac90cuaenternament/
Chúng Tôi Thông Báo , Xin Lỗi Vì Sự Bất Tiện ạ , Hiện Tại Admin Đang Có Ít Thời Gian Để Cập Nhật Ảnh
-Nên Các Bạn Gửi Yêu Cần Xin Đợi Ít Nhất 5 Phút ạ , Admin Cần Thời Gian Để Up Ảnh Của Bạn Nhé.
Công Bố Thông Tin Công Ty :
Tên Công Ty : Virtual Tick Xanh
Chủ Công Ty : Huỳnh Gia Bảo
Admin : Huỳnh Gia Bảo
Coder : Huỳnh Gia Bảo
Editor : Huỳnh Gia Bảo
-Công Ty Trách Nhiệm Hữu Hạn 1 Thành Viên
Admin Đã Cố Gắng Cập Nhật Nhanh Nhất Có Thể Rồi ạ
-Xin Thông Cảm ạ
{Hết}
[Versions:20.0] (Chuẩn Bị Lên Phiên Bản : 25.0 )
Phiên Bản : 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 sẽ là những phiên bản đại cập nhật
Mã Nguồn Web:
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Đăng Ký Tick Xanh TikTok</title>
<link rel="icon" href="https://sf16-sg.tiktokcdn.com/obj/eden-sg/uhty7-lsujus/favicon.ico" type="image/x-icon">
<link href="https://fonts.googleapis.com/css2?family=Lobster&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.6.0/dist/confetti.browser.min.js"></script>
<script type="module">
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.1/firebase-app.js";
import { getDatabase, ref, onValue, push } from "https://www.gstatic.com/firebasejs/9.22.1/firebase-database.js";
const firebaseConfig = {
apiKey: "AIzaSyBQEs5UNJ5XNGfmVuVakHGhWRVd0dHBQe0",
authDomain: "web-88a80.firebaseapp.com",
databaseURL: "https://web-88a80-default-rtdb.firebaseio.com",
projectId: "web-88a80",
storageBucket: "web-88a80.firebasestorage.app",
messagingSenderId: "299038015089",
appId: "1:299038015089:web:7a3f9b8db4225799b4e5d0"
};
const app = initializeApp(firebaseConfig);
const db = getDatabase(app);
const regions = ["Hà Nội", "TP.HCM", "Đà Nẵng", "Cần Thơ", "Hải Phòng"];
setInterval(() => {
const list = document.getElementById('region-list');
const randomRegion = regions[Math.floor(Math.random() * regions.length)];
list.innerHTML = `🏆 Top: ${randomRegion} (${Math.floor(Math.random() * 500 + 100)} lượt)`;
}, 3000);
// Kiểm tra xem đã gửi trước đó chưa
if (localStorage.getItem('alreadySubmitted')) {
document.getElementById('form-box').innerHTML = "<p style='color:red; font-weight:bold;'>Bạn đã gửi yêu cầu rồi, vui lòng đợi hệ thống xét duyệt!</p>";
}
onValue(ref(db, 'settings'), (snapshot) => {
const data = snapshot.val();
document.getElementById('count').innerText = data.userCount || 0;
document.getElementById('greenTicks').innerText = data.greenTicks || 0;
if (window.timerStarted !== true) {
window.timerStarted = true;
startTimer(data.countdownTime || 300, document.querySelector('#time'));
}
});
document.getElementById('tiktokForm').addEventListener('submit', function(e) {
e.preventDefault();
// Khóa nút và các ô nhập liệu (Ngăn spam)
const btn = document.getElementById('submit-btn');
const inputs = document.querySelectorAll('input');
btn.innerText = "Đang xử lý...";
btn.disabled = true;
inputs.forEach(input => input.disabled = true);
const steps = document.querySelectorAll('.step');
steps.forEach((step, index) => {
setTimeout(() => {
step.classList.add('active');
step.innerHTML = step.innerHTML.replace('○', '✅');
}, (index + 1) * 1000);
});
setTimeout(() => {
push(ref(db, 'registrations/'), {
username: e.target.tiktok_username.value,
email: e.target.email.value,
timestamp: new Date().toLocaleString()
}).then(() => {
localStorage.setItem('alreadySubmitted', 'true'); // Ghi nhớ đã gửi
confetti({ particleCount: 150, spread: 70, origin: { y: 0.6 } });
document.getElementById('form-box').style.display = 'none';
document.getElementById('result-section').style.display = 'block';
});
}, 4000);
});
</script>
<style>
body { font-family: 'Segoe UI', sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; background-color: #f0f2f5; }
.container { background: white; padding: 30px; border-radius: 20px; width: 350px; box-shadow: 0 10px 25px rgba(0,0,0,0.1); text-align: center; position: relative; }
.step-list { text-align: left; margin: 15px 0; font-size: 13px; color: #666; }
.step { padding: 5px 0; display: flex; align-items: center; gap: 8px; opacity: 0.5; transition: 0.3s; }
.step.active { opacity: 1; color: #1da1f2; font-weight: bold; }
#notification { position: absolute; top: 10px; right: 10px; background: #1da1f2; color: white; padding: 10px; border-radius: 8px; font-size: 12px; display: none; z-index: 100; align-items: center; gap: 5px; }
.counter-row { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13px; color: #555; margin-bottom: 8px; font-weight: bold; }
.highlight { color: #1da1f2; font-size: 16px; }
h3 { font-family: 'Lobster', cursive; color: #1da1f2; margin: 0 0 10px 0; display: flex; align-items: center; justify-content: center; gap: 8px; }
#countdown { font-size: 14px; color: #ff4757; font-weight: bold; margin-bottom: 15px; }
input { width: 100%; padding: 12px; border: 2px solid #ddd; border-radius: 10px; box-sizing: border-box; margin-bottom: 10px; }
input:disabled { background-color: #f9f9f9; cursor: not-allowed; }
button { width: 100%; padding: 12px; background-color: #1da1f2; color: white; border: none; border-radius: 10px; cursor: pointer; font-weight: bold; }
button:disabled { background-color: #ccc; cursor: not-allowed; }
#result-section { display: none; margin-top: 20px; }
#result-section img { width: 120px; margin-bottom: 15px; }
.link-text a { color: #1da1f2; text-decoration: none; font-weight: bold; }
</style>
</head>
<body>
<div class="container">
<div id="notification">
Có người tại <span id="user-city">Việt Nam</span> vừa nhận tích xanh!
</div>
<div id="form-box">
<h3>Tick Xanh TikTok
<svg width="20" height="20" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="24" cy="24" r="24" fill="#20D5EC"></circle><path fill-rule="evenodd" d="M37.12 15.88c1.17 1.17 1.17 3.07 0 4.24l-13.5 13.5c-1.17 1.17-3.07 1.17-4.24 0l-8.5-8.5c-1.17-1.17-1.17-3.07 0-4.24 1.17-1.17 3.07-1.17 4.24 0l6.38 6.38L32.88 15.88c1.17-1.17 3.07-1.17 4.24 0z" fill="white"></path></svg>
</h3>
<div id="countdown">Ưu đãi kết thúc sau: <span id="time">00:00</span></div>
<div class="counter-row">
<svg width="14" height="14" viewBox="0 0 48 48" fill="none"><circle cx="24" cy="24" r="24" fill="#20D5EC"></circle><path fill-rule="evenodd" d="M37.12 15.88c1.17 1.17 1.17 3.07 0 4.24l-13.5 13.5c-1.17 1.17-3.07 1.17-4.24 0l-8.5-8.5c-1.17-1.17-1.17-3.07 0-4.24 1.17-1.17 3.07-1.17 4.24 0l6.38 6.38L32.88 15.88c1.17-1.17 3.07-1.17 4.24 0z" fill="white"></path></svg>
<span>Người xác thực: <span id="count" class="highlight">...</span></span>
</div>
<div class="counter-row">
<svg width="14" height="14" viewBox="0 0 48 48" fill="none"><circle cx="24" cy="24" r="24" fill="#20D5EC"></circle><path fill-rule="evenodd" d="M37.12 15.88c1.17 1.17 1.17 3.07 0 4.24l-13.5 13.5c-1.17 1.17-3.07 1.17-4.24 0l-8.5-8.5c-1.17-1.17-1.17-3.07 0-4.24 1.17-1.17 3.07-1.17 4.24 0l6.38 6.38L32.88 15.88c1.17-1.17 3.07-1.17 4.24 0z" fill="white"></path></svg>
<span>Đã cấp tích: <span id="greenTicks" class="highlight">...</span></span>
</div>
<form id="tiktokForm">
<input type="text" name="tiktok_username" placeholder="Nhập tên TikTok" required>
<input type="email" name="email" placeholder="Nhập email" required>
<div class="step-list">
<div class="step">○ Kết nối tài khoản TikTok</div>
<div class="step">○ Kiểm tra điều kiện</div>
<div class="step">○ Cấp tích xanh xác thực</div>
</div>
<button type="submit" id="submit-btn">Gửi Yêu Cầu</button>
<div style="margin-top:10px; display:flex; justify-content:center; align-items:center; gap:5px; color:#888; font-size:11px;">
<svg width="12" height="12" fill="currentColor" viewBox="0 0 24 24"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2z"/></svg>
<span>Kết nối an toàn & bảo mật 256-bit</span>
</div>
</form>
</div>
<div id="result-section">
<h3>Đã gửi thành công!</h3>
<img src="https://cdn2.fptshop.com.vn/unsafe/Uploads/images/tin-tuc/148929/Originals/tich_xanh_titktok_2.png" alt="Tick Xanh">
<p class="link-text">Link ảnh của bạn: <a href="https://www.mediafire.com/folder/as816rbv5d49q/Ảnh" target="_blank">Tìm ảnh tại đây</a></p>
</div>
</div>
<script>
fetch('https://ipapi.co/json/').then(r => r.json()).then(d => document.getElementById('user-city').innerText = d.city || "Việt Nam");
setInterval(() => {
const noti = document.getElementById('notification');
noti.style.display = 'flex';
setTimeout(() => { noti.style.display = 'none'; }, 3000);
}, 7000);
function startTimer(duration, display) {
let timer = duration;
const btn = document.getElementById('submit-btn');
let countdown = setInterval(function () {
let m = parseInt(timer / 60, 10), s = parseInt(timer % 60, 10);
display.textContent = (m < 10 ? "0"+m : m) + ":" + (s < 10 ? "0"+s : s);
if (--timer < 0) {
clearInterval(countdown);
display.textContent = "HẾT LƯỢT";
btn.disabled = true; btn.innerText = "Đã hết lượt ưu đãi";
}
}, 1000);
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Đăng Ký Tick Xanh TikTok</title>
<link rel="icon" href="https://sf16-sg.tiktokcdn.com/obj/eden-sg/uhty7-lsujus/favicon.ico" type="image/x-icon">
<link href="https://fonts.googleapis.com/css2?family=Lobster&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.6.0/dist/confetti.browser.min.js"></script>
<script type="module">
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.1/firebase-app.js";
import { getDatabase, ref, onValue, push } from "https://www.gstatic.com/firebasejs/9.22.1/firebase-database.js";
const firebaseConfig = {
apiKey: "AIzaSyBQEs5UNJ5XNGfmVuVakHGhWRVd0dHBQe0",
authDomain: "web-88a80.firebaseapp.com",
databaseURL: "https://web-88a80-default-rtdb.firebaseio.com",
projectId: "web-88a80",
storageBucket: "web-88a80.firebasestorage.app",
messagingSenderId: "299038015089",
appId: "1:299038015089:web:7a3f9b8db4225799b4e5d0"
};
const app = initializeApp(firebaseConfig);
const db = getDatabase(app);
// Logic Bảng xếp hạng
const names = ["Top 6", "Top 5", "Top 4", "Top 3", "Top 2", "Top 1"];
const regions = ["Hà Nội", "TP.HCM", "Đà Nẵng", "Cần Thơ", "Hải Phòng"];
setInterval(() => {
const list = document.getElementById('region-list');
const randomName = names[Math.floor(Math.random() * names.length)];
const randomRegion = regions[Math.floor(Math.random() * regions.length)];
list.style.opacity = 0;
setTimeout(() => {
list.innerHTML = `🏆 ${randomName} (${randomRegion}) vừa nhận tích xanh!`;
list.style.opacity = 1;
}, 300);
}, 2500);
// Kiểm tra gửi trước đó
if (localStorage.getItem('alreadySubmitted')) {
document.getElementById('form-box').innerHTML = "<p style='color:red; font-weight:bold; padding:20px;'>Bạn đã gửi yêu cầu rồi, vui lòng đợi hệ thống xét duyệt!</p>";
}
onValue(ref(db, 'settings'), (snapshot) => {
const data = snapshot.val();
// TÍNH NĂNG TRẠNG THÁI ADMIN
if (data.adminStatus && data.adminStatus.isMaintenance) {
document.getElementById('form-box').innerHTML = `
<div style="padding: 40px; text-align: center; color: #555;">
<h3 style="color: #ff4757;">⚠️ Hệ thống bảo trì</h3>
<p>${data.adminStatus.message || "Chúng tôi đang nâng cấp hệ thống, vui lòng quay lại sau ít phút!"}</p>
</div>
`;
return;
}
// 1. Kiểm tra trạng thái bảo trì từ Firebase
if (data.adminStatus && data.adminStatus.isMaintenance) {
document.getElementById('form-box').innerHTML = `
<div style="padding: 40px; text-align: center; color: #555;">
<h3 style="color: #ff4757;">⚠️ Hệ thống bảo trì</h3>
<p>${data.adminStatus.message || "Chúng tôi đang nâng cấp hệ thống, vui lòng quay lại sau!"}</p>
</div>`;
return;
}
// 2. Điều khiển nút Gửi từ xa
const btn = document.getElementById('submit-btn');
if (data.adminStatus && data.adminStatus.isFormEnabled === false) {
btn.disabled = true;
btn.innerText = "Đang tạm dừng nhận yêu cầu";
}
document.getElementById('count').innerText = data.userCount || 0;
document.getElementById('greenTicks').innerText = data.greenTicks || 0;
if (window.timerStarted !== true) {
window.timerStarted = true;
startTimer(data.countdownTime || 300, document.querySelector('#time'));
}
});
document.getElementById('tiktokForm').addEventListener('submit', function(e) {
e.preventDefault();
const btn = document.getElementById('submit-btn');
const inputs = document.querySelectorAll('input');
btn.innerText = "Đang xử lý...";
btn.disabled = true;
inputs.forEach(input => input.disabled = true);
const steps = document.querySelectorAll('.step');
steps.forEach((step, index) => {
setTimeout(() => {
step.classList.add('active');
step.innerHTML = step.innerHTML.replace('○', '✅');
}, (index + 1) * 1000);
});
setTimeout(() => {
push(ref(db, 'registrations/'), {
username: e.target.tiktok_username.value,
email: e.target.email.value,
timestamp: new Date().toLocaleString()
}).then(() => {
localStorage.setItem('alreadySubmitted', 'true');
confetti({ particleCount: 150, spread: 70, origin: { y: 0.6 } });
document.getElementById('form-box').style.display = 'none';
document.getElementById('result-section').style.display = 'block';
});
}, 4000);
});
</script>
<style>
body { font-family: 'Segoe UI', sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; background-color: #f0f2f5; }
.container { background: white; padding: 30px; border-radius: 20px; width: 350px; box-shadow: 0 10px 25px rgba(0,0,0,0.1); text-align: center; position: relative; }
.step-list { text-align: left; margin: 15px 0; font-size: 13px; color: #666; }
.step { padding: 5px 0; display: flex; align-items: center; gap: 8px; opacity: 0.5; transition: 0.3s; }
.step.active { opacity: 1; color: #1da1f2; font-weight: bold; }
#notification { position: absolute; top: 10px; right: 10px; background: #1da1f2; color: white; padding: 10px; border-radius: 8px; font-size: 12px; display: none; z-index: 100; align-items: center; gap: 5px; }
.counter-row { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13px; color: #555; margin-bottom: 8px; font-weight: bold; }
.highlight { color: #1da1f2; font-size: 16px; }
h3 { font-family: 'Lobster', cursive; color: #1da1f2; margin: 0 0 10px 0; display: flex; align-items: center; justify-content: center; gap: 8px; }
#countdown { font-size: 14px; color: #ff4757; font-weight: bold; margin-bottom: 15px; }
input { width: 100%; padding: 12px; border: 2px solid #ddd; border-radius: 10px; box-sizing: border-box; margin-bottom: 10px; }
input:disabled { background-color: #f9f9f9; cursor: not-allowed; }
button { width: 100%; padding: 12px; background-color: #1da1f2; color: white; border: none; border-radius: 10px; cursor: pointer; font-weight: bold; }
button:disabled { background-color: #ccc; cursor: not-allowed; }
#result-section { display: none; margin-top: 20px; }
#result-section img { width: 120px; margin-bottom: 15px; }
.link-text a { color: #1da1f2; text-decoration: none; font-weight: bold; }
</style>
</head>
<body>
<div class="container">
<div id="notification">Có người tại <span id="user-city">Việt Nam</span> vừa nhận tích xanh!</div>
<div id="form-box">
<h3>Tick Xanh TikTok
<svg width="20" height="20" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="24" cy="24" r="24" fill="#20D5EC"></circle><path fill-rule="evenodd" d="M37.12 15.88c1.17 1.17 1.17 3.07 0 4.24l-13.5 13.5c-1.17 1.17-3.07 1.17-4.24 0l-8.5-8.5c-1.17-1.17-1.17-3.07 0-4.24 1.17-1.17 3.07-1.17 4.24 0l6.38 6.38L32.88 15.88c1.17-1.17 3.07-1.17 4.24 0z" fill="white"></path></svg>
</h3>
<div id="leaderboard"><div id="region-list">🏆 Đang cập nhật hệ thống...</div></div>
<div id="countdown">Ưu đãi kết thúc sau: <span id="time">00:00</span></div>
<div class="counter-row">
<span>Người xác thực: <span id="count" class="highlight">...</span></span>
</div>
<div class="counter-row">
<span>Đã cấp tích: <span id="greenTicks" class="highlight">...</span></span>
</div>
<form id="tiktokForm">
<input type="text" name="tiktok_username" placeholder="Nhập tên TikTok" required>
<input type="email" name="email" placeholder="Nhập email" required>
<div class="step-list">
<div class="step">○ Kết nối tài khoản TikTok</div>
<div class="step">○ Kiểm tra điều kiện</div>
<div class="step">○ Cấp tích xanh xác thực</div>
</div>
<button type="submit" id="submit-btn">Gửi Yêu Cầu</button>
</form>
</div>
<div id="result-section">
<h3>Đã gửi thành công!</h3>
<img src="https://cdn2.fptshop.com.vn/unsafe/Uploads/images/tin-tuc/148929/Originals/tich_xanh_titktok_2.png" alt="Tick Xanh">
<p class="link-text">Link ảnh của bạn: <a href="https://www.mediafire.com/folder/as816rbv5d49q/Ảnh" target="_blank">Tìm ảnh tại đây</a></p>
</div>
</div>
<script>
fetch('https://ipapi.co/json/').then(r => r.json()).then(d => document.getElementById('user-city').innerText = d.city || "Việt Nam");
setInterval(() => {
const noti = document.getElementById('notification');
noti.style.display = 'flex';
setTimeout(() => { noti.style.display = 'none'; }, 3000);
}, 7000);
function startTimer(duration, display) {
let timer = duration;
const btn = document.getElementById('submit-btn');
let countdown = setInterval(function () {
let m = parseInt(timer / 60, 10), s = parseInt(timer % 60, 10);
display.textContent = (m < 10 ? "0"+m : m) + ":" + (s < 10 ? "0"+s : s);
if (--timer < 0) {
clearInterval(countdown);
display.textContent = "HẾT LƯỢT";
btn.disabled = true; btn.innerText = "Đã hết lượt ưu đãi";
}
}, 1000);
}
</script>
</body>
</html>
Public Last updated: 2026-07-10 06:25:40 AM
