Hostinger's credentials format
๐ฆ Server
โจ The Prompt Phrase
=== DATABASE CREDENTIALS (Hostinger) === Environment: hostinger Type: MYSQL Host: localhost Port: 3306 Database: u419999707_Bunny Username: u419999707_naif Password: P@master5007 Charset: utf8mb4
๐ป Code Preview
๐ฆ All-in-One Code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>๐ฐ Tutorial Hostinger Credentials Report</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
min-height: 100vh;
overflow-x: hidden;
color: #fff;
}
/* Floating particles */
.particles {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
overflow: hidden;
z-index: 0;
}
.particle {
position: absolute;
width: 10px;
height: 10px;
background: rgba(255, 255, 255, 0.1);
border-radius: 50%;
animation: float 15s infinite;
}
@keyframes float {
0%, 100% { transform: translateY(100vh) rotate(0deg); opacity: 0; }
10% { opacity: 1; }
90% { opacity: 1; }
100% { transform: translateY(-100vh) rotate(720deg); opacity: 0; }
}
/* Header */
.header {
text-align: center;
padding: 60px 20px;
position: relative;
z-index: 1;
}
.header h1 {
font-size: 3rem;
background: linear-gradient(90deg, #ff6b6b, #feca57, #48dbfb, #ff9ff3, #ff6b6b);
background-size: 400% 400%;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: gradientShift 5s ease infinite;
margin-bottom: 20px;
}
@keyframes gradientShift {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
.header .subtitle {
font-size: 1.3rem;
color: #a0a0a0;
animation: fadeInUp 1s ease;
}
.bunny-mascot {
font-size: 5rem;
animation: bounce 2s ease infinite;
display: inline-block;
}
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-20px); }
}
/* Progress Bar */
.progress-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 5px;
background: rgba(255, 255, 255, 0.1);
z-index: 1000;
}
.progress-bar {
height: 100%;
background: linear-gradient(90deg, #ff6b6b, #feca57, #48dbfb);
width: 0%;
transition: width 0.5s ease;
}
/* Navigation dots */
.nav-dots {
position: fixed;
right: 30px;
top: 50%;
transform: translateY(-50%);
z-index: 100;
}
.nav-dot {
width: 15px;
height: 15px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.3);
margin: 15px 0;
cursor: pointer;
transition: all 0.3s ease;
border: 2px solid transparent;
}
.nav-dot:hover, .nav-dot.active {
background: #48dbfb;
transform: scale(1.3);
border-color: #fff;
box-shadow: 0 0 20px #48dbfb;
}
/* Main Container */
.container {
max-width: 1000px;
margin: 0 auto;
padding: 20px;
position: relative;
z-index: 1;
}
/* Credential Cards */
.credential-section {
margin: 100px 0;
opacity: 0;
transform: translateY(50px);
transition: all 0.8s ease;
}
.credential-section.visible {
opacity: 1;
transform: translateY(0);
}
.credential-card {
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(10px);
border-radius: 25px;
padding: 40px;
border: 1px solid rgba(255, 255, 255, 0.1);
position: relative;
overflow: hidden;
transition: all 0.4s ease;
}
.credential-card:hover {
transform: translateY(-10px);
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4);
border-color: rgba(255, 255, 255, 0.3);
}
.credential-card::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.03), transparent);
transform: rotate(45deg);
animation: shine 3s infinite;
}
@keyframes shine {
0% { transform: translateX(-100%) rotate(45deg); }
100% { transform: translateX(100%) rotate(45deg); }
}
.card-icon {
font-size: 4rem;
margin-bottom: 20px;
display: inline-block;
animation: pulse 2s ease infinite;
}
@keyframes pulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.1); }
}
.card-title {
font-size: 2rem;
margin-bottom: 15px;
display: flex;
align-items: center;
gap: 15px;
}
.card-value {
font-family: 'Courier New', monospace;
background: linear-gradient(135deg, #2d3436 0%, #000000 100%);
padding: 15px 25px;
border-radius: 15px;
font-size: 1.3rem;
color: #00ff88;
margin: 20px 0;
border: 2px solid #00ff88;
position: relative;
overflow: hidden;
cursor: pointer;
transition: all 0.3s ease;
}
.card-value:hover {
background: linear-gradient(135deg, #000000 0%, #2d3436 100%);
box-shadow: 0 0 30px rgba(0, 255, 136, 0.3);
}
.card-value.copied {
border-color: #feca57;
color: #feca57;
}
.card-value.copied::after {
content: 'โ Copied!';
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
color: #feca57;
animation: fadeIn 0.3s ease;
}
.card-description {
font-size: 1.1rem;
line-height: 1.8;
color: #b0b0b0;
}
.fun-fact {
background: linear-gradient(135deg, rgba(254, 202, 87, 0.1) 0%, rgba(255, 107, 107, 0.1) 100%);
border-left: 4px solid #feca57;
padding: 20px;
border-radius: 0 15px 15px 0;
margin-top: 25px;
}
.fun-fact-title {
color: #feca57;
font-weight: bold;
margin-bottom: 10px;
display: flex;
align-items: center;
gap: 10px;
}
/* Type badges */
.badge {
display: inline-block;
padding: 5px 15px;
border-radius: 20px;
font-size: 0.9rem;
font-weight: bold;
text-transform: uppercase;
}
.badge-mysql { background: linear-gradient(135deg, #4479A1, #00758F); }
.badge-hostinger { background: linear-gradient(135deg, #673DE6, #8B5CF6); }
.badge-secure { background: linear-gradient(135deg, #ff6b6b, #ee5a24); }
.badge-charset { background: linear-gradient(135deg, #00b894, #00cec9); }
/* Interactive elements */
.interactive-demo {
background: rgba(0, 0, 0, 0.3);
border-radius: 20px;
padding: 30px;
margin-top: 25px;
}
.demo-title {
color: #48dbfb;
margin-bottom: 15px;
font-size: 1.2rem;
}
.connection-animation {
display: flex;
align-items: center;
justify-content: center;
gap: 20px;
padding: 30px;
}
.connection-node {
width: 80px;
height: 80px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
background: linear-gradient(135deg, #2d3436, #000);
border: 3px solid #48dbfb;
}
.connection-line {
width: 100px;
height: 4px;
background: linear-gradient(90deg, #48dbfb, transparent, #48dbfb);
position: relative;
overflow: hidden;
}
.connection-line::after {
content: '';
position: absolute;
width: 30px;
height: 100%;
background: #fff;
animation: dataFlow 1s linear infinite;
}
@keyframes dataFlow {
0% { left: -30px; }
100% { left: 100%; }
}
/* Quiz section */
.quiz-section {
background: linear-gradient(135deg, rgba(72, 219, 251, 0.1), rgba(255, 107, 107, 0.1));
border-radius: 25px;
padding: 40px;
margin: 50px 0;
border: 2px solid rgba(72, 219, 251, 0.3);
}
.quiz-question {
font-size: 1.3rem;
margin-bottom: 25px;
}
.quiz-options {
display: grid;
gap: 15px;
}
.quiz-option {
background: rgba(255, 255, 255, 0.05);
padding: 20px;
border-radius: 15px;
cursor: pointer;
transition: all 0.3s ease;
border: 2px solid transparent;
}
.quiz-option:hover {
background: rgba(255, 255, 255, 0.1);
transform: translateX(10px);
border-color: #48dbfb;
}
.quiz-option.correct {
background: rgba(0, 184, 148, 0.3);
border-color: #00b894;
}
.quiz-option.wrong {
background: rgba(255, 107, 107, 0.3);
border-color: #ff6b6b;
}
.quiz-feedback {
margin-top: 20px;
padding: 20px;
border-radius: 15px;
display: none;
animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(-10px); }
to { opacity: 1; transform: translateY(0); }
}
/* Summary section */
.summary-section {
background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05));
border-radius: 25px;
padding: 50px;
margin: 100px 0;
text-align: center;
}
.summary-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 25px;
margin-top: 40px;
}
.summary-item {
background: rgba(0, 0, 0, 0.3);
padding: 25px;
border-radius: 20px;
transition: all 0.3s ease;
}
.summary-item:hover {
transform: scale(1.05);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}
.summary-item .label {
color: #a0a0a0;
font-size: 0.9rem;
margin-bottom: 10px;
}
.summary-item .value {
color: #48dbfb;
font-family: 'Courier New', monospace;
font-size: 1.1rem;
word-break: break-all;
}
/* Footer */
.footer {
text-align: center;
padding: 50px;
color: #666;
}
.footer-hearts {
font-size: 2rem;
animation: heartbeat 1s ease infinite;
}
@keyframes heartbeat {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.2); }
}
/* Scroll indicator */
.scroll-indicator {
position: fixed;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
animation: scrollBounce 2s ease infinite;
z-index: 100;
cursor: pointer;
}
@keyframes scrollBounce {
0%, 100% { transform: translateX(-50%) translateY(0); }
50% { transform: translateX(-50%) translateY(10px); }
}
.scroll-arrow {
width: 30px;
height: 30px;
border-right: 3px solid #48dbfb;
border-bottom: 3px solid #48dbfb;
transform: rotate(45deg);
}
/* Responsive */
@media (max-width: 768px) {
.header h1 { font-size: 2rem; }
.card-title { font-size: 1.5rem; }
.nav-dots { display: none; }
.connection-animation { flex-direction: column; }
.connection-line { width: 4px; height: 50px; }
}
/* Tooltip */
.tooltip {
position: relative;
}
.tooltip-text {
visibility: hidden;
position: absolute;
bottom: 100%;
left: 50%;
transform: translateX(-50%);
background: #333;
color: #fff;
padding: 10px 15px;
border-radius: 10px;
font-size: 0.9rem;
white-space: nowrap;
opacity: 0;
transition: all 0.3s ease;
}
.tooltip:hover .tooltip-text {
visibility: visible;
opacity: 1;
bottom: calc(100% + 10px);
}
/* Confetti styles */
.confetti {
position: fixed;
width: 10px;
height: 10px;
pointer-events: none;
z-index: 9999;
}
/* Typewriter effect */
.typewriter {
overflow: hidden;
border-right: 3px solid #48dbfb;
white-space: nowrap;
animation: typing 3s steps(40) 1s forwards, blink 0.75s step-end infinite;
width: 0;
}
@keyframes typing {
from { width: 0; }
to { width: 100%; }
}
@keyframes blink {
50% { border-color: transparent; }
}
/* Glow effect for important elements */
.glow {
animation: glow 2s ease-in-out infinite alternate;
}
@keyframes glow {
from { text-shadow: 0 0 5px #fff, 0 0 10px #48dbfb, 0 0 15px #48dbfb; }
to { text-shadow: 0 0 10px #fff, 0 0 20px #48dbfb, 0 0 30px #48dbfb, 0 0 40px #48dbfb; }
}
/* Warning box */
.warning-box {
background: linear-gradient(135deg, rgba(255, 107, 107, 0.2), rgba(238, 90, 36, 0.2));
border: 2px solid #ff6b6b;
border-radius: 15px;
padding: 25px;
margin-top: 25px;
}
.warning-box-title {
color: #ff6b6b;
font-weight: bold;
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 10px;
}
/* Step indicator */
.step-indicator {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 30px;
}
.step-number {
width: 40px;
height: 40px;
border-radius: 50%;
background: linear-gradient(135deg, #48dbfb, #0abde3);
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
font-size: 1.2rem;
}
.step-text {
color: #48dbfb;
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 2px;
}
</style>
</head>
<body>
<!-- Progress bar -->
<div class="progress-container">
<div class="progress-bar" id="progressBar"></div>
</div>
<!-- Floating particles -->
<div class="particles" id="particles"></div>
<!-- Navigation dots -->
<div class="nav-dots" id="navDots"></div>
<!-- Scroll indicator -->
<div class="scroll-indicator" id="scrollIndicator">
<div class="scroll-arrow"></div>
</div>
<!-- Header -->
<header class="header">
<div class="bunny-mascot">๐ฐ</div>
<h1>Tutorial Hostinger Credentials Report</h1>
<p class="subtitle">Your Interactive Guide to Database Connection Magic! โจ</p>
</header>
<div class="container">
<!-- Introduction -->
<section class="credential-section" id="section-intro">
<div class="credential-card">
<div class="step-indicator">
<div class="step-number">0</div>
<span class="step-text">Welcome</span>
</div>
<div class="card-icon">๐ญ</div>
<h2 class="card-title">What Are Database Credentials?</h2>
<p class="card-description">
Imagine you're trying to enter a super-secret bunny club ๐ฐ. You can't just walk in โ
you need to know <strong>where</strong> the club is, <strong>what's</strong> your secret
handshake, and <strong>who</strong> you are! Database credentials work exactly the same way.
<br><br>
They're like your VIP pass to access all the precious data stored in your database.
Without them, your application would be standing outside in the rain, unable to store
or retrieve any information! ๐ง๏ธ
</p>
<div class="fun-fact">
<div class="fun-fact-title">๐ก Fun Fact!</div>
Every second, millions of database connections are made worldwide using credentials
just like these. You're about to join this exclusive club!
</div>
</div>
</section>
<!-- Environment -->
<section class="credential-section" id="section-env">
<div class="credential-card">
<div class="step-indicator">
<div class="step-number">1</div>
<span class="step-text">Environment</span>
</div>
<div class="card-icon">๐</div>
<h2 class="card-title">
Environment
<span class="badge badge-hostinger">Hostinger</span>
</h2>
<div class="card-value tooltip" onclick="copyToClipboard(this, 'hostinger')">
hostinger
<span class="tooltip-text">Click to copy!</span>
</div>
<p class="card-description">
The <strong>environment</strong> tells your application which "world" it's operating in.
Think of it like different dimensions in a video game! ๐ฎ
<br><br>
<strong>Hostinger</strong> is your hosting provider โ they're the company that gives
your website and database a cozy home on the internet. It's like a luxurious hotel
for your code! ๐จ
</p>
<div class="interactive-demo">
<div class="demo-title">๐ฏ Why Does This Matter?</div>
<p style="color: #b0b0b0;">
Different environments can have different settings. Your development environment
might be on your laptop, while production runs on Hostinger. Same code,
different settings!
</p>
</div>
</div>
</section>
<!-- Type -->
<section class="credential-section" id="section-type">
<div class="credential-card">
<div class="step-indicator">
<div class="step-number">2</div>
<span class="step-text">Database Type</span>
</div>
<div class="card-icon">๐๏ธ</div>
<h2 class="card-title">
Database Type
<span class="badge badge-mysql">MySQL</span>
</h2>
<div class="card-value tooltip" onclick="copyToClipboard(this, 'MYSQL')">
MYSQL
<span class="tooltip-text">Click to copy!</span>
</div>
<p class="card-description">
<strong>MySQL</strong> is the language your database speaks! It's one of the most
popular database systems in the world, powering giants like Facebook, Twitter,
and YouTube! ๐
<br><br>
Think of it as choosing what language to speak. If you go to France, you speak
French. If you talk to a MySQL database, you speak... SQL! ๐ซ๐ทโก๏ธ๐๏ธ
</p>
<div class="fun-fact">
<div class="fun-fact-title">๐ฌ Did You Know?</div>
MySQL's logo is a dolphin named "Sakila"! The name MySQL comes from the
co-founder's daughter, My. So it's literally "My's SQL"!
</div>
</div>
</section>
<!-- Host -->
<section class="credential-section" id="section-host">
<div class="credential-card">
<div class="step-indicator">
<div class="step-number">3</div>
<span class="step-text">Host</span>
</div>
<div class="card-icon">๐ </div>
<h2 class="card-title">Host</h2>
<div class="card-value tooltip" onclick="copyToClipboard(this, 'localhost')">
localhost
<span class="tooltip-text">Click to copy!</span>
</div>
<p class="card-description">
The <strong>host</strong> is the address where your database lives.
<code>localhost</code> means "right here, on this same server!" ๐
<br><br>
It's like telling a pizza delivery guy that you want the pizza delivered
to your own house. The database server and web server are roommates! ๐
</p>
<div class="interactive-demo">
<div class="demo-title">๐ Connection Flow</div>
<div class="connection-animation">
<div class="connection-node">๐ป</div>
<div class="connection-line"></div>
<div class="connection-node">๐ </div>
<div class="connection-line"></div>
<div class="connection-node">๐๏ธ</div>
</div>
<p style="color: #b0b0b0; text-align: center; margin-top: 15px;">
Your App โ localhost โ Database (All on the same machine!)
</p>
</div>
</div>
</section>
<!-- Port -->
<section class="credential-section" id="section-port">
<div class="credential-card">
<div class="step-indicator">
<div class="step-number">4</div>
<span class="step-text">Port</span>
</div>
<div class="card-icon">๐ช</div>
<h2 class="card-title">Port</h2>
<div class="card-value tooltip" onclick="copyToClipboard(this, '3306')">
3306
<span class="tooltip-text">Click to copy!</span>
</div>
<p class="card-description">
If the host is the building address, the <strong>port</strong> is the specific
apartment number! ๐ข
<br><br>
Port <strong>3306</strong> is MySQL's favorite door โ it's the default port
MySQL listens on. Just like how web browsers use port 80 for HTTP or 443
for HTTPS!
</p>
<div class="fun-fact">
<div class="fun-fact-title">๐ข Port Party!</div>
There are 65,535 possible ports on a computer! MySQL claimed 3306 as its home.
PostgreSQL lives at 5432, and MongoDB hangs out at 27017. Each database has
its favorite number!
</div>
</div>
</section>
<!-- Database Name -->
<section class="credential-section" id="section-database">
<div class="credential-card">
<div class="step-indicator">
<div class="step-number">5</div>
<span class="step-text">Database Name</span>
</div>
<div class="card-icon">๐</div>
<h2 class="card-title">Database Name</h2>
<div class="card-value tooltip" onclick="copyToClipboard(this, 'u419999707_Bunny')">
u419999707_Bunny
<span class="tooltip-text">Click to copy!</span>
</div>
<p class="card-description">
This is YOUR database's name! ๐ฐ It's like the title of a book that contains
all your tables, data, and precious information.
<br><br>
The <code>u419999707_</code> prefix is Hostinger's way of organizing things โ
it's your unique user ID. And <code>Bunny</code>? Well, that's the adorable
name you chose! ๐ฅ
</p>
<div class="interactive-demo">
<div class="demo-title">๐ What's Inside?</div>
<p style="color: #b0b0b0;">
A database contains multiple <strong>tables</strong> (like chapters in a book),
and each table has <strong>rows</strong> (individual entries) and
<strong>columns</strong> (different pieces of information). Your Bunny database
is ready to hop with data! ๐
</p>
</div>
</div>
</section>
<!-- Username -->
<section class="credential-section" id="section-username">
<div class="credential-card">
<div class="step-indicator">
<div class="step-number">6</div>
<span class="step-text">Username</span>
</div>
<div class="card-icon">๐ค</div>
<h2 class="card-title">Username</h2>
<div class="card-value tooltip" onclick="copyToClipboard(this, 'u419999707_naif')">
u419999707_naif
<span class="tooltip-text">Click to copy!</span>
</div>
<p class="card-description">
Your <strong>username</strong> is your database identity! When you connect,
you're basically saying "Hey database, it's me, <em>naif</em>!" ๐
<br><br>
The database checks this username to verify you're allowed in and to determine
what you're permitted to do (read data, write data, delete stuff, etc.)
</p>
<div class="fun-fact">
<div class="fun-fact-title">๐ญ Identity Check!</div>
Just like how different keys open different doors in a hotel, different
database users can have different permissions. The username helps the database
know exactly what you're allowed to do!
</div>
</div>
</section>
<!-- Password -->
<section class="credential-section" id="section-password">
<div class="credential-card">
<div class="step-indicator">
<div class="step-number">7</div>
<span class="step-text">Password</span>
</div>
<div class="card-icon">๐</div>
<h2 class="card-title">
Password
<span class="badge badge-secure">Top Secret</span>
</h2>
<div class="card-value tooltip" onclick="copyToClipboard(this, 'password')" id="passwordField">
โขโขโขโขโขโขโขโข
<span class="tooltip-text">Click to copy!</span>
</div>
<button onclick="togglePassword()" style="background: linear-gradient(135deg, #48dbfb, #0abde3); border: none; padding: 10px 20px; border-radius: 10px; color: #fff; cursor: pointer; margin-top: 10px; font-weight: bold; transition: all 0.3s ease;">
๐๏ธ Toggle Visibility
</button>
<p class="card-description">
The <strong>password</strong> is your secret key! Combined with the username,
it proves you are who you say you are. Never share this with strangers! ๐คซ
</p>
<div class="warning-box">
<div class="warning-box-title">โ ๏ธ Security Warning!</div>
<p style="color: #ff9f9f;">
NEVER commit passwords directly in your code! Use environment variables
or secure vaults. Passwords in plain sight are like leaving your house
key under the doormat โ everyone knows to look there! ๐
</p>
</div>
</div>
</section>
<!-- Charset -->
<section class="credential-section" id="section-charset">
<div class="credential-card">
<div class="step-indicator">
<div class="step-number">8</div>
<span class="step-text">Charset</span>
</div>
<div class="card-icon">๐ค</div>
<h2 class="card-title">
Charset
<span class="badge badge-charset">Unicode</span>
</h2>
<div class="card-value tooltip" onclick="copyToClipboard(this, 'utf8mb4')">
utf8mb4
<span class="tooltip-text">Click to copy!</span>
</div>
<p class="card-description">
<strong>utf8mb4</strong> is the character encoding โ it's how your database
understands text! This magical setting allows your database to store ANY
character from ANY language, including emojis! ๐๐๐ฐ
<br><br>
Without proper charset, you might see weird symbols instead of
"ู
ุฑุญุจุง" or "ใใใซใกใฏ" or "๐"!
</p>
<div class="fun-fact">
<div class="fun-fact-title">๐ฏ mb4 = 4 bytes!</div>
The "mb4" means "multibyte 4" โ each character can use up to 4 bytes.
This is crucial for emojis because they need 4 bytes! Regular utf8 only
uses 3 bytes and would turn your ๐ into a question mark! โ
</div>
</div>
</section>
<!-- Quiz Section -->
<section class="credential-section" id="section-quiz">
<div class="quiz-section">
<div class="step-indicator">
<div class="step-number">๐ฎ</div>
<span class="step-text">Pop Quiz!</span>
</div>
<h2 style="font-size: 2rem; margin-bottom: 20px;">Test Your Knowledge! ๐ง </h2>
<div id="quiz1">
<p class="quiz-question">What is the default port for MySQL?</p>
<div class="quiz-options">
<div class="quiz-option" onclick="checkAnswer(this, false)">๐
ฐ๏ธ 8080</div>
<div class="quiz-option" onclick="checkAnswer(this, false)">๐
ฑ๏ธ 5432</div>
<div class="quiz-option" onclick="checkAnswer(this, true)">๐
ฒ๏ธ 3306</div>
<div class="quiz-option" onclick="checkAnswer(this, false)">๐
ณ๏ธ 27017</div>
</div>
<div class="quiz-feedback" id="quizFeedback"></div>
</div>
</div>
</section>
<!-- Summary -->
<section class="credential-section" id="section-summary">
<div class="summary-section">
<h2 style="font-size: 2.5rem; margin-bottom: 10px;" class="glow">๐ Complete Credentials Summary</h2>
<p style="color: #a0a0a0; margin-bottom: 30px;">All your database credentials in one place!</p>
<div class="summary-grid">
<div class="summary-item">
<div class="label">๐ Environment</div>
<div class="value">hostinger</div>
</div>
<div class="summary-item">
<div class="label">๐๏ธ Type</div>
<div class="value">MYSQL</div>
</div>
<div class="summary-item">
<div class="label">๐ Host</div>
<div class="value">localhost</div>
</div>
<div class="summary-item">
<div class="label">๐ช Port</div>
<div class="value">3306</div>
</div>
<div class="summary-item">
<div class="label">๐ Database</div>
<div class="value">u419999707_Bunny</div>
</div>
<div class="summary-item">
<div class="label">๐ค Username</div>
<div class="value">u419999707_naif</div>
</div>
<div class="summary-item">
<div class="label">๐ Password</div>
<div class="value">โขโขโขโขโขโขโขโข</div>
</div>
<div class="summary-item">
<div class="label">๐ค Charset</div>
<div class="value">utf8mb4</div>
</div>
</div>
<div style="margin-top: 50px;">
<button onclick="copyAllCredentials()" style="background: linear-gradient(135deg, #00b894, #00cec9); border: none; padding: 20px 40px; border-radius: 15px; color: #fff; cursor: pointer; font-size: 1.2rem; font-weight: bold; transition: all 0.3s ease; box-shadow: 0 10px 30px rgba(0, 184, 148, 0.3);">
๐ Copy All Credentials
</button>
</div>
</div>
</section>
</div>
<!-- Footer -->
<footer class="footer">
<div class="footer-hearts">๐๐ฐ๐</div>
<p style="margin-top: 20px;">Made with love for the Bunny Project</p>
<p style="margin-top: 10px; font-size: 0.9rem;">Keep your credentials safe! ๐</p>
</footer>
<script>
// Create floating particles
function createParticles() {
const container = document.getElementById('particles');
for (let i = 0; i < 50; i++) {
const particle = document.createElement('div');
particle.className = 'particle';
particle.style.left = Math.random() * 100 + '%';
particle.style.animationDelay = Math.random() * 15 + 's';
particle.style.animationDuration = (Math.random() * 10 + 10) + 's';
container.appendChild(particle);
}
}
// Update progress bar on scroll
function updateProgress() {
const scrollTop = window.scrollY;
const docHeight = document.documentElement.scrollHeight - window.innerHeight;
const progress = (scrollTop / docHeight) * 100;
document.getElementById('progressBar').style.width = progress + '%';
// Hide scroll indicator when scrolled
const scrollIndicator = document.getElementById('scrollIndicator');
if (scrollTop > 200) {
scrollIndicator.style.opacity = '0';
} else {
scrollIndicator.style.opacity = '1';
}
}
// Reveal sections on scroll
function revealSections() {
const sections = document.querySelectorAll('.credential-section');
sections.forEach((section, index) => {
const rect = section.getBoundingClientRect();
const isVisible = rect.top < window.innerHeight * 0.8;
if (isVisible) {
section.classList.add('visible');
// Update nav dots
document.querySelectorAll('.nav-dot').forEach((dot, i) => {
dot.classList.toggle('active', i === index);
});
}
});
}
// Create navigation dots
function createNavDots() {
const sections = document.querySelectorAll('.credential-section');
const container = document.getElementById('navDots');
sections.forEach((section, index) => {
const dot = document.createElement('div');
dot.className = 'nav-dot';
dot.onclick = () => section.scrollIntoView({ behavior: 'smooth' });
container.appendChild(dot);
});
}
// Copy to clipboard
function copyToClipboard(element, text) {
navigator.clipboard.writeText(text).then(() => {
element.classList.add('copied');
setTimeout(() => element.classList.remove('copied'), 2000);
});
}
// Toggle password visibility
let passwordVisible = false;
function togglePassword() {
const field = document.getElementById('passwordField');
passwordVisible = !passwordVisible;
field.textContent = passwordVisible ? 'password' : 'โขโขโขโขโขโขโขโข';
}
// Quiz check
function checkAnswer(element, isCorrect) {
const options = element.parentElement.querySelectorAll('.quiz-option');
options.forEach(opt => {
opt.style.pointerEvents = 'none';
});
element.classList.add(isCorrect ? 'correct' : 'wrong');
const feedback = document.getElementById('quizFeedback');
feedback.style.display = 'block';
if (isCorrect) {
feedback.style.background = 'rgba(0, 184, 148, 0.2)';
feedback.innerHTML = '๐ <strong>Correct!</strong> MySQL\'s default port is 3306!';
createConfetti();
} else {
feedback.style.background = 'rgba(255, 107, 107, 0.2)';
feedback.innerHTML = 'โ <strong>Oops!</strong> The correct answer is 3306. Try to remember it!';
// Highlight correct answer
options.forEach(opt => {
if (opt.textContent.includes('3306')) {
opt.classList.add('correct');
}
});
}
}
// Confetti effect
function createConfetti() {
const colors = ['#ff6b6b', '#feca57', '#48dbfb', '#ff9ff3', '#00b894'];
for (let i = 0; i < 100; i++) {
const confetti = document.createElement('div');
confetti.className = 'confetti';
confetti.style.background = colors[Math.floor(Math.random() * colors.length)];
confetti.style.left = Math.random() * 100 + 'vw';
confetti.style.top = '-10px';
confetti.style.borderRadius = Math.random() > 0.5 ? '50%' : '0';
document.body.appendChild(confetti);
// Animate
const animation = confetti.animate([
{ transform: 'translateY(0) rotate(0deg)', opacity: 1 },
{ transform: `translateY(100vh) rotate(${Math.random() * 720}deg)`, opacity: 0 }
], {
duration: Math.random() * 2000 + 2000,
easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)'
});
animation.onfinish = () => confetti.remove();
}
}
// Copy all credentials
function copyAllCredentials() {
const credentials = `=== DATABASE CREDENTIALS (Hostinger) ===
Environment: hostinger
Type: MYSQL
Host: localhost
Port: 3306
Database: u419999707_Bunny
Username: u419999707_naif
Password: password
Charset: utf8mb4`;
navigator.clipboard.writeText(credentials).then(() => {
createConfetti();
alert('๐ All credentials copied to clipboard!');
});
}
// Initialize
document.addEventListener('DOMContentLoaded', () => {
createParticles();
createNavDots();
revealSections();
});
window.addEventListener('scroll', () => {
updateProgress();
revealSections();
});
// Smooth scroll for indicator
document.getElementById('scrollIndicator').onclick = () => {
document.querySelector('.credential-section').scrollIntoView({ behavior: 'smooth' });
};
</script>
</body>
</html>
Live Preview