Dit is handig als je een website runt waar veel mensen tegelijk online zijn, en je wil de server niet overbelast hebben. Ik gebruik het zelf ook zo ongeveer, om zo de MySQL niet down te krijgen. Zie het codeblok voor meer uitleg over de functie.
<?
function PageViewLimiet()
{
$kLimiet = 60;
// Aantal pageviews per $kSeconden
$kSeconden = 60;
// Om de X seconden gaan de views weer naar 0
if(!isset($_SESSION['clicks']))
{
// Sessie clicks bestaat nog niet, dus aanmaken
$_SESSION['clicks'] = array
(
'clicks' => 0, // Aantal kliks
'time' => time() // Tijd wanneer de sessie wordt aangemaakt
);
// Dit allemaal in een array, het kan
// ook apart, maar dit werkt wel net zo handig
}
$_SESSION['clicks']['clicks']++;
// Tellertje + 1 doen, elke pageview
if($_SESSION['clicks']['time'] < (time()-$kSeconden))
{
// Als de huidige tijd - $kSeconden de tijd heeft
// gepasseerd wanneer de sessie time is, wordt het
// aantal clicks + de tijd weer naar 0 en naar de
// huidige tijd gezet
$_SESSION['clicks']['clicks'] = 0;
$_SESSION['clicks']['time'] = time();
}
else
{
if($_SESSION['clicks']['clicks'] > $kLimiet)
{
// En hier is het limiet bereikt dan
echo 'Je hebt jouw <b>pageviewlimiet</b> voor deze minuut bereikt!<br />';
echo 'Je moet nog '.($kLimiet - (time() - $_SESSION['clicks']['time'])).' seconden wachten!<br />';
exit;
}
}
}
?>
Een eenvoudig kliklimiet, je kunt hem opvragen op pagina's waar het nodig is met PageViewLimiet();
Vergeet dan niet bovenaan de pagina('s) session_start(); te doen, want dit gebruikt sessie's.
Voorbeeld hoe het zou kunnen werken:
<?
session_start();
require_once 'config.php';
// In dit bestand staat dan de functie
PageViewLimiet();
echo 'Welkom op deze pagina.';
?>