<?php
session_start();
require_once 'config/connexion.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

// Inclure les fichiers PHPMailer
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';

$success = '';
$error = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $email = trim($_POST['email'] ?? '');
    if (empty($email)) {
        $error = "Veuillez saisir votre adresse email.";
    } else {
        $canSend = false; // envoi email uniquement si code généré + enregistré
        // Vérifier la connexion DB (mysqli ou PDO) depuis config/connexion.php
        if (!isset($conn) || !$conn) {
            // Essayer PDO si disponible
            if (!isset($pdo) || !$pdo) {
                $error = "Connexion à la base de données indisponible. Veuillez vous authentifier ou sélectionner une compagnie.";
            } else {
                try {
                    $stmtP = $pdo->prepare("SELECT id FROM users_table WHERE user_email = ? LIMIT 1");
                    $stmtP->execute([$email]);
                    $row = $stmtP->fetch(PDO::FETCH_ASSOC);
                    if ($row) {
                        // Générer un code à 8 chiffres
                        $code = str_pad(random_int(0, 99999999), 8, '0', STR_PAD_LEFT);
                        $expiry = date('Y-m-d H:i:s', time() + 300); // 5 minutes

                        // Enregistrer le code et l'expiration dans la base
                        $user_id = (int)$row['id'];
                        $upd = $pdo->prepare("UPDATE users_table SET recup_pass = ?, recup_expiry = ? WHERE id = ?");
                        $upd->execute([$code, $expiry, $user_id]);

                        $_SESSION['reset_email'] = $email;
                        $canSend = true;
                        // Continuer envoi mail plus bas
                    } else {
                        $error = "Aucun utilisateur trouvé avec cette adresse email.";
                    }
                } catch (Throwable $te) {
                    $error = "Erreur DB: ".substr($te->getMessage(),0,140);
                }
            }
        } else {
            $stmt = $conn->prepare("SELECT id FROM users_table WHERE user_email = ?");
            $stmt->bind_param("s", $email);
            $stmt->execute();
            $stmt->store_result();
            if ($stmt->num_rows > 0) {
            // Générer un code à 8 chiffres
            $code = str_pad(random_int(0, 99999999), 8, '0', STR_PAD_LEFT);
            $expiry = date('Y-m-d H:i:s', time() + 300); // 5 minutes

            // Enregistrer le code et l'expiration dans la base
            $stmt->bind_result($user_id);
            $stmt->fetch();
            $stmt->close();
            $update = $conn->prepare("UPDATE users_table SET recup_pass = ?, recup_expiry = ? WHERE id = ?");
            $update->bind_param("ssi", $code, $expiry, $user_id);
            $update->execute();
            $update->close();

            $_SESSION['reset_email'] = $email;
            $canSend = true;
            } else {
                $error = "Aucun utilisateur trouvé avec cette adresse email.";
            }
        }
        // Envoi du mail via SMTP (PHPMailer recommandé) uniquement si prêt
        if (!$error && $canSend) {
            $mail = new PHPMailer(true);
            try {
                // Config SMTP
                $mail->isSMTP();
                $mail->Host = 'mail.services-ae.net'; // À adapter
                $mail->SMTPAuth = true;
                $mail->Username = 'manager@hebergood.com'; // À adapter
                $mail->Password = 'X!P0}h=HwhA*'; // À adapter
                $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
                $mail->Port = 465;

                $mail->setFrom('manager@hebergood.com', 'Support');
                $mail->addAddress($email);

                $mail->isHTML(true);
                $mail->Subject = 'Code de réinitialisation de mot de passe';
                $mail->Body = "Votre code de réinitialisation est : <b>$code</b>";

                $mail->send();
                header('Location: verify-code.php');
                exit;
            } catch (Exception $e) {
                $error = "Erreur lors de l'envoi du mail : " . $mail->ErrorInfo;
            }
        }
        // $stmt->close(); // déjà fermé plus haut
    }
}
?>
<!DOCTYPE html>
<html lang="fr">
<?php include ('includes/head_code.php');?>
<body class="bg-gradient-login">
<div class="container-login">
    <div class="row justify-content-center">
        <div class="col-xl-6 col-lg-6 col-md-9">
            <div class="card shadow-sm my-5">
                <div class="card-body p-0">
                    <div class="row">
                        <div class="col-lg-12">
                            <div class="login-form">
                                <div class="text-center">
                                    <h1 class="h4 text-gray-900 mb-4">Mot de passe oublié</h1>
                                </div>
                                <?php if ($error): ?>
                                    <div class="alert alert-danger"><?= $error ?></div>
                                <?php endif; ?>
                                <?php if ($success): ?>
                                    <div class="alert alert-success"><?= $success ?></div>
                                <?php endif; ?>
                                <form method="POST" action="">
                                    <div class="form-group">
                                        <label>Adresse email</label>
                                        <input type="email" class="form-control" name="email" required placeholder="Entrez votre adresse email">
                                    </div>
                                    <div class="form-group">
                                        <button type="submit" class="btn btn-primary btn-block">Envoyer le code</button>
                                    </div>
                                </form>
                                <hr>
                                <div class="text-center">
                                    <a class="font-weight-bold small" href="login.php">Retour à la connexion</a>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<script src="js/ruang-admin.min.js"></script>
</body>
</html>
