security: SRI Font Awesome, CSP restrictions, remove X-XSS-Protection, rate limiting
This commit is contained in:
+27
-20
@@ -24,26 +24,33 @@ $currentSearchPage = validatePageNumber($_GET['page'] ?? 1);
|
||||
$isTagSearch = !empty($query) && substr($query, 0, 1) === '#';
|
||||
$searchTag = $isTagSearch ? substr($query, 1) : '';
|
||||
|
||||
// Rechercher les vidéos via l'API PeerTube si une requête est soumise
|
||||
$searchResults = !empty($query) ? searchVideos($query, COUNT_VIDEO_SEARCH) : [];
|
||||
|
||||
// Définir le nombre total de résultats
|
||||
$resultsCount = count($searchResults);
|
||||
|
||||
// Calculer le nombre total de pages
|
||||
$totalPages = ceil($resultsCount / VIDEOS_PER_PAGE);
|
||||
|
||||
// S'assurer que la page actuelle est valide
|
||||
$currentSearchPage = min($currentSearchPage, max(1, $totalPages));
|
||||
|
||||
// Calculer les indices de début et de fin pour la page actuelle
|
||||
$startIndex = ($currentSearchPage - 1) * VIDEOS_PER_PAGE;
|
||||
$endIndex = min($startIndex + VIDEOS_PER_PAGE, $resultsCount);
|
||||
|
||||
// Extraire les vidéos pour la page actuelle
|
||||
// Rechercher les vidéos via l'API PeerTube si une requête est soumise.
|
||||
// La pagination est déléguée à l'API (paramètre start) : chaque page ne
|
||||
// récupère que VIDEOS_PER_PAGE vidéos et $resultsCount reçoit le total réel.
|
||||
$resultsCount = 0;
|
||||
$currentPageVideos = [];
|
||||
if ($resultsCount > 0) {
|
||||
$currentPageVideos = array_slice($searchResults, $startIndex, VIDEOS_PER_PAGE);
|
||||
$totalPages = 1;
|
||||
if (!empty($query)) {
|
||||
$currentPageVideos = searchVideos(
|
||||
$query,
|
||||
VIDEOS_PER_PAGE,
|
||||
($currentSearchPage - 1) * VIDEOS_PER_PAGE,
|
||||
$resultsCount
|
||||
);
|
||||
$totalPages = max(1, (int) ceil($resultsCount / VIDEOS_PER_PAGE));
|
||||
|
||||
// Page demandée au-delà de la dernière : se replacer sur la dernière page valide
|
||||
if ($currentSearchPage > $totalPages) {
|
||||
$currentSearchPage = $totalPages;
|
||||
$currentPageVideos = searchVideos(
|
||||
$query,
|
||||
VIDEOS_PER_PAGE,
|
||||
($currentSearchPage - 1) * VIDEOS_PER_PAGE,
|
||||
$resultsCount
|
||||
);
|
||||
// Le total a pu changer (ex. API en échec sur un start trop élevé)
|
||||
$totalPages = max(1, (int) ceil($resultsCount / VIDEOS_PER_PAGE));
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -61,7 +68,7 @@ if ($resultsCount > 0) {
|
||||
<link rel="canonical" href="<?php echo getBaseUrl() . '/recherche.php'; ?>">
|
||||
<?php endif; ?>
|
||||
<link rel="stylesheet" href="css/styles.css?v=<?php echo filemtime('css/styles.css'); ?>">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css" integrity="sha512-2SwdPD6INVrV/lHTZbO2nodKhrnDdJK9/kg2XD1r9uGqPo1cUbujc+IYdlYdEErWNu69gVcYgdxlmVmzTWnetw==" crossorigin="anonymous">
|
||||
|
||||
<!-- Favicons -->
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="img/apple-touch-icon.png">
|
||||
|
||||
Reference in New Issue
Block a user