ip-loggerblokker-met-mysql

Gesponsorde koppelingen

PHP script bestanden

  1. ip-loggerblokker-met-mysql

« Lees de omschrijving en reacties

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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?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
?>


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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
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`)
)



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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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
}
?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.