check()) { http_response_code(429); header('Retry-After: ' . $rateLimit->getResetTime()); $rateLimit->sendHeaders(); // Simple error page echo 'Rate Limit'; echo '

Trop de requêtes

'; echo '

Vous avez dépassé la limite de 30 recherches par minute. Veuillez réessayer dans ' . $rateLimit->getResetTime() . ' secondes.

'; echo ''; exit; } $rateLimit->sendHeaders(); if (rand(1, 100) === 1) { $rateLimit->cleanup(); } // Pagination - adjust to grid $page = isset($_GET['page']) ? intval($_GET['page']) : 1; $itemsPerPage = 9; // Default grid size (3 rows × 3 columns) // Collect search parameters $searchParams = []; if (!empty($_GET['query'])) { $searchParams['query'] = trim($_GET['query']); } if (!empty($_GET['year'])) { $searchParams['year'] = intval($_GET['year']); } if (!empty($_GET['orientation'])) { $searchParams['orientation'] = $_GET['orientation']; } if (!empty($_GET['ap_program'])) { $searchParams['ap_program'] = $_GET['ap_program']; } if (!empty($_GET['finality'])) { $searchParams['finality'] = $_GET['finality']; } if (!empty($_GET['keyword'])) { $searchParams['keyword'] = $_GET['keyword']; } if (!empty($_GET['format'])) { $searchParams['format'] = $_GET['format']; } if (!empty($_GET['language'])) { $searchParams['language'] = $_GET['language']; } if (isset($_GET['is_doctoral'])) { $searchParams['is_doctoral'] = $_GET['is_doctoral'] === '1'; } $validationError = null; $showFilters = isset($_GET['filters']) && $_GET['filters'] === 'show'; try { $db = Database::getInstance(); // Get search results $offset = ($page - 1) * $itemsPerPage; $results = $db->searchTheses($searchParams, $itemsPerPage, $offset); $totalItems = $db->countSearchResults($searchParams); $totalPages = ceil($totalItems / $itemsPerPage); // Get filter options $years = $db->getAvailableYears(); $orientations = $db->getOrientations(); $apPrograms = $db->getApPrograms(); $finalityTypes = $db->getFinalityTypes(); $keywords = $db->getUsedKeywords(); $formats = $db->getFormatTypes(); $languages = $db->getLanguages(); } catch (InvalidArgumentException $e) { error_log("Search validation error: " . $e->getMessage()); $validationError = $e->getMessage(); $results = []; $totalPages = 0; $totalItems = 0; $years = []; $orientations = []; $apPrograms = []; $finalityTypes = []; $keywords = []; $formats = []; $languages = []; } catch (Exception $e) { error_log("Error in search: " . $e->getMessage()); $validationError = "Une erreur est survenue lors de la recherche."; $results = []; $totalPages = 0; $totalItems = 0; $years = []; $orientations = []; $apPrograms = []; $finalityTypes = []; $keywords = []; $formats = []; $languages = []; } ?> Recherche - Posterg
← Retour
Réinitialiser
0): ?>

Aucun résultat trouvé pour cette recherche.
Utilisez la barre de recherche pour trouver des mémoires.
1): ?>