--------------de functie-----------------

[code]
<?php
Function limitView($views,$time,$paginaid){

   	$limit = (int) $views; // aantal bezoeken
   	$error = "<br /><br /><b><center>Sorry, u heeft deze pagina te veel bezocht de afgelopen $time minuten.</center></b>"; // error melding.
	$remote_ip = $_SERVER['REMOTE_ADDR'];
	$dbc = @mysqli_connect ('localhost', 'root', '', '') OR trigger_error("Databaseverbinding kon niet worden gemaakt.\n<br />MySQL - fout: " . mysqli_connect_error());
		
   //query om te kijken of al bestaat
   $q = "SELECT remote_log,id_pagina 
   FROM tbllog WHERE remote_log = '$remote_ip' 
   AND id_pagina = '$paginaid' 
   AND datum_log = CURDATE()";
   $r = mysqli_query($dbc, $q);
   if(mysqli_num_rows($r) == 0)	{//geen resultaten dus aanmaken
      $q = "INSERT INTO tbllog (id_pagina,remote_log,time_log,datum_log,log_aantal) 
	  VALUES ('$paginaid', '$remote_ip', CURTIME(),CURDATE(),'1')";
	  $r = mysqli_query($dbc, $q);
	  $id = (int) mysqli_insert_id($dbc);//int van maken, niet gelukt dan nul
   }else{ //als wel bestaat.
      // Verwijderen als langer bestaat dan de opgegeven tijd.
	  $q1 = "SELECT id_log 
	  FROM tbllog 
	  WHERE MINUTE(TIMEDIFF(CURTIME(), time_log)) >= $time 
	  AND remote_log = '$remote_ip' 
	  AND id_pagina = '$paginaid'";	  
	  $r1 = mysqli_query($dbc, $q1);
	  if (mysqli_num_rows($r1) >= 1)	{//verwijderen
	  	while ($id_del = mysqli_fetch_array($r1))	{
			$q2 = "DELETE FROM tbllog WHERE id_log = '".$id_del['id_log']."'";
			$r2 = mysqli_query($dbc, $q2);
		}	
	  }else{
        //currente aantal ophalen
		$q3 = "SELECT id_pagina,log_aantal 
		FROM tbllog WHERE remote_log = '$remote_ip' 
		AND id_pagina = '$paginaid' 
		AND log_aantal <= '$limit'";
		$r3 = mysqli_query($dbc, $q3);
		if (mysqli_num_rows($r3) == 1)	{//goed, 1 resultaat per gebruiker per pagina
			list($id_pagina,$log_aantal) = mysqli_fetch_array($r3);
			$log_aantal++;//1 bij optellen
			//updaten
			$q4 = "UPDATE tbllog 
			SET log_aantal = '$log_aantal' 
			WHERE id_pagina = '$id_pagina' 
			AND remote_log = '$remote_ip'";
			$r4 = mysqli_query($dbc, $q4);
		}else	{//te veel bezoeken:
			echo $error;
			return TRUE;
		}
      }//einde else del
      
   }//einde hoofd if/else
   //oude record opschonen
   $q5 = "DELETE FROM tbllog WHERE datum_log < CURDATE() - INTERVAL 1 DAY";
   $r5 = mysqli_query($dbc, $q5);
}//einde functie
?>
[/code]

--------------------De tabel ----------------------

[code]
CREATE TABLE `tbllog` (
  `id_log` int(11) NOT NULL auto_increment,
  `id_pagina` int(11) NOT NULL,
  `remote_log` varchar(15) NOT NULL,
  `time_log` time NOT NULL,
  `datum_log` date NOT NULL,
  `log_aantal` int(11) NOT NULL,
  PRIMARY KEY  (`id_log`)
)

[/code]


---------gebruik op de pagina-------

[code]
<?php
//funtie aanroepen
$pag = limitView('100','360','15');//honderd views in 6 uur

if ($pag != TRUE )	{//geef maar weer
?> 

DE INHOUD

<?php
}else	{//page_not is true, de error verschijnt
}
?>

[/code]

