diff --git a/public/search.php b/public/search.php
index d84037d..dfc9ffc 100644
--- a/public/search.php
+++ b/public/search.php
@@ -4,43 +4,32 @@ require_once __DIR__ . '/../config/bootstrap.php';
require_once APP_ROOT . '/src/Database.php';
require_once APP_ROOT . '/src/RateLimit.php';
-
// Rate limiting: 30 requests per minute
$rateLimit = new RateLimit(30, 60);
// Check rate limit
if (!$rateLimit->check()) {
- // Send rate limit headers
http_response_code(429);
header('Retry-After: ' . $rateLimit->getResetTime());
$rateLimit->sendHeaders();
-
- // Display error page
- include APP_ROOT . '/templates/header.php';
- echo '
';
- echo ' Vous avez dépassé la limite de ' . 30 . ' recherches par minute.';
- echo '
Veuillez réessayer dans ' . $rateLimit->getResetTime() . ' secondes.';
- echo '
Vous avez dépassé la limite de 30 recherches par minute. Veuillez réessayer dans ' . $rateLimit->getResetTime() . ' secondes.
'; + echo ''; exit; } -// Send rate limit headers for successful requests $rateLimit->sendHeaders(); -// Periodic cleanup (1% chance) if (rand(1, 100) === 1) { $rateLimit->cleanup(); } -// Pagination (max 100 per page) +// Pagination - adjust to grid $page = isset($_GET['page']) ? intval($_GET['page']) : 1; -$itemsPerPage = min(100, isset($_GET['per_page']) ? intval($_GET['per_page']) : 20); +$itemsPerPage = 12; // Default grid size (3 rows × 4 columns) // Collect search parameters $searchParams = []; @@ -73,6 +62,7 @@ if (isset($_GET['is_doctoral'])) { } $validationError = null; +$showFilters = isset($_GET['filters']) && $_GET['filters'] === 'show'; try { $db = Database::getInstance(); @@ -93,7 +83,6 @@ try { $languages = $db->getLanguages(); } catch (InvalidArgumentException $e) { - // Input validation error error_log("Search validation error: " . $e->getMessage()); $validationError = $e->getMessage(); $results = []; @@ -107,7 +96,6 @@ try { $formats = []; $languages = []; } catch (Exception $e) { - // Database or other error error_log("Error in search: " . $e->getMessage()); $validationError = "Une erreur est survenue lors de la recherche."; $results = []; @@ -121,298 +109,431 @@ try { $formats = []; $languages = []; } - -include APP_ROOT . '/templates/header.php'; ?> - -