"error", "message" => "Données invalides."]); exit; } // Génération du code $code = rand(100000, 999999); $token = md5($email . time()); // Stockage temporaire (Valide 1h) $auth_data = [ 'code' => $code, 'email' => $email, 'message' => $message, 'expires' => time() + 3600 ]; file_put_contents($log_dir . $token, json_encode($auth_data)); // Envoi du code à l'utilisateur $subject = "Votre code de vérification - abonnel.fr"; $body = "Votre code de validation est : $code\nCe code expire dans 1 heure."; if (mail($email, $subject, $body, "From: $from_server")) { echo json_encode(["status" => "success", "token" => $token]); } else { echo json_encode(["status" => "error", "message" => "Erreur d'envoi du code."]); } } // --- ACTION 2 : VÉRIFICATION ET ENVOI FINAL --- if ($step === 'verify_code') { $token = $_POST['token'] ?? ''; $user_code = $_POST['code'] ?? ''; $file = $log_dir . $token; if (!file_exists($file)) { echo json_encode(["status" => "error", "message" => "Session expirée."]); exit; } $data = json_decode(file_get_contents($file), true); if (time() > $data['expires']) { unlink($file); echo json_encode(["status" => "error", "message" => "Code expiré."]); exit; } if ($user_code == $data['code']) { // Envoi final à VOUS $final_subject = "[Validé] Contact de " . $data['email']; $final_body = "Message de : " . $data['email'] . "\n\n" . $data['message']; mail($to_admin, $final_subject, $final_body, "From: $from_server\r\nReply-To: " . $data['email']); unlink($file); // Supprime le ticket après succès echo json_encode(["status" => "success", "message" => "Message envoyé avec succès !"]); } else { echo json_encode(["status" => "error", "message" => "Code incorrect."]); } }