' . $title . '
'; + echo '' . $message . '
'; + + if ($cta_href) { + echo ''; + } + + echo 'diff --git a/connexion.php b/connexion.php index 17a8721..fe60525 100644 --- a/connexion.php +++ b/connexion.php @@ -5,62 +5,69 @@ $mot_de_passe = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { - $email = trim($_POST['email'] ?? ''); - $mot_de_passe = $_POST['mot_de_passe'] ?? ''; + $email = trim($_POST['email'] ?? ''); + $mot_de_passe = $_POST['mot_de_passe'] ?? ''; - if ($email === '' || $mot_de_passe === '') { - $erreur = $translations['erreur_champs_vides']; - } else { - // 1) On vérifie l’utilisateur - $stmt = $pdo->prepare("SELECT * FROM compte WHERE email = :email LIMIT 1"); - $stmt->execute(['email' => $email]); - $compte = $stmt->fetch(); + if ($email === '' || $mot_de_passe === '') { + $erreur = $translations['erreur_champs_vides']; + } else { + // 1) On vérifie l’utilisateur + $stmt = $pdo->prepare("SELECT * FROM compte WHERE email = :email LIMIT 1"); + $stmt->execute(['email' => $email]); + $compte = $stmt->fetch(); - if ($compte && password_verify($mot_de_passe, $compte['mot_de_passe'])) { - if (empty($compte['email_valide'])) { - $erreur = $translations['erreur_email_non_valide']; - } else { - session_regenerate_id(true); // ✅ anti session fixation - // 2) Connexion OK → on initialise la session - $_SESSION['compte_id'] = $compte['id']; - $_SESSION['role'] = strtolower(trim($compte['role'] ?? '')); - $_SESSION['reference_id'] = $compte['reference_id']; - $_SESSION['email'] = $compte['email']; - $_SESSION['last_activity'] = time(); + if ($compte && password_verify($mot_de_passe, $compte['mot_de_passe'])) { + if (empty($compte['email_valide'])) { + $_SESSION['pending_validation_resend'] = [ + 'compte_id' => (int) $compte['id'], + 'email' => (string) $compte['email'], + 'authorized' => true, + 'expires_at' => time() + 900, // 15 min + ]; - // 3) On gère la redirection prioritaire vers la page demandée - $next = $_POST['next'] ?? $_GET['next'] ?? ($_SESSION['redirect_to'] ?? null); - $next = next_safe($next); - if ($next) { - unset($_SESSION['redirect_to']); - header('Location: ' . $next); - exit; - } - - // 4) Sinon, fallback par rôle - if ($_SESSION['role'] === 'client') { - header('Location: /public/client/mes_rendez_vous.php');exit; - } elseif ($_SESSION['role'] === 'admin') { - header('Location: /admin/index.php');exit; - } elseif ($_SESSION['role'] === 'secretaire') { - header('Location: /public/cabinet/dashboard.php');exit; - } else { - header('Location: /public/praticien/agenda.php');exit; - } - } + $erreur = $translations['tvalidat_erreur_email_non_valide'] ?? $translations['erreur_email_non_valide'] ?? 'Veuillez valider votre adresse email avant de vous connecter.'; } else { - $erreur = $translations['erreur_identifiants']; + session_regenerate_id(true); // ✅ anti session fixation + // 2) Connexion OK → on initialise la session + $_SESSION['compte_id'] = $compte['id']; + $_SESSION['role'] = strtolower(trim($compte['role'] ?? '')); + $_SESSION['reference_id'] = $compte['reference_id']; + $_SESSION['email'] = $compte['email']; + $_SESSION['last_activity'] = time(); + + // 3) On gère la redirection prioritaire vers la page demandée + $next = $_POST['next'] ?? $_GET['next'] ?? ($_SESSION['redirect_to'] ?? null); + $next = next_safe($next); + if ($next) { + unset($_SESSION['redirect_to']); + header('Location: ' . $next); + exit; + } + + // 4) Sinon, fallback par rôle + if ($_SESSION['role'] === 'client') { + header('Location: /public/client/mes_rendez_vous.php');exit; + } elseif ($_SESSION['role'] === 'admin') { + header('Location: /admin/index.php');exit; + } elseif ($_SESSION['role'] === 'secretaire') { + header('Location: /public/cabinet/dashboard.php');exit; + } else { + header('Location: /public/praticien/agenda.php');exit; + } } + } else { + $erreur = $translations['erreur_identifiants']; } } + } ?>
-' . $message . '
'; + + if ($cta_href) { + echo ''; + } + + echo '