Bloquer l'accès à des pages par un compteur

Eléphant du PHP | 213 Messages

18 août 2022, 16:32

Bonjour,
J'aimerai savoir, s'il est possible d'autoriser l'ouverture des pages à 10 fois seulement.
Le site n'a pas de base de données.
Je ne récupère pas le login de connexion de l'user.
Dans la page header.php il y a

Code : Tout sélectionner

<?php // Start the session session_start(); ?>
A la fin du cycle il y a une déconnexion .

Code : Tout sélectionner

<?php session_start(); //to ensure you are using same session session_destroy(); //destroy the session header("location:index.php"); //to redirect back to "index.php" after logging out exit(); ?>
Si oui
Faut-il passer par un compteur sur chaque page?
J'ai fait des recherches sur PHP.net, mais ne sachant pas les noms des codes.......
Merci.
De retour au PHP pour essayer de préserver mon emploi à 59 ans.

ynx
Mammouth du PHP | 586 Messages

18 août 2022, 17:58

Bonjour,

Tu peux éventuellement utiliser une variable de session pour enregistrer le compteur de visite pour la session en cours. Mais sans connexion utilisateur et sans persistance des données (sans bdd ou autre stockage), l'utilisateur pourra simplement redémarrer son navigateur pour créer une nouvelle session et réinitialiser son compteur de visite.

<?php

session_start();

if (!isset($_SESSION['visit_count'])) {
    $_SESSION['visit_count'] = 0;
}

$_SESSION['visit_count']++;

if ($_SESSION['visit_count'] > 10) {
    header('location: index.php');
    exit();
}

?>
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
</head>
<body>
    Nombre de visite de cette page : <?= $_SESSION['visit_count'] ?>
</body>
</html>

Mammouth du PHP | 2703 Messages

18 août 2022, 18:39

ou avec un cookie, mais l'utilisateur pourra le supprimer.