Stylemotion.de Forum » apexx » Konzepte & Codeschnipsel
IP Sperre - Visits, Hits, Klicks für News, Artikel, User etc.
Seiten (1): 1  
Autor Beitrag
 
eyeland
Kunde (Support beendet)
IP Sperre - Visits, Hits, Klicks für News, Artikel, User etc.
Da hier schon oft gefragt wurde, wie man die Anzahl der Visites etwas realistischer gestalten kann, da durch wiederholtes "F5" gedrücke, es manche Webseitenbenutzer schön finden die Statistiken "hochzuklicken" hier eine ganz einfache Anleitung wie man das unterbinden könnte:

1. In der DB zum jeweiligen Modul (z.B. _user) eine neue Spalte anlegen und diese eindeutig benennen (z.B. VISITS). Da soll dann die Anzahl der Klicks mit IPSperre gespeichert werden..

2. Dann kommt in der DB eine neue Tabelle hinzu. Diese habe ich mal "IPSPERRE" gennant.
In dieser Tabelle lege ich 4 Spalten an: id | ip | time | userid

3. Nun kommt dieser PHP-Code zum Einsatz:

PHP-Code:
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
<?php   
function getip() {
    if(
getenv("HTTP_X_FORWARDED_FOR"))
        
$ip getenv("HTTP_X_FORWARDED_FOR");
    else
     
        
$ip getenv("REMOTE_ADDR"); 
    return 
$ip
}

mysql_connect("HOST","DBNAME","DBPASSWORD") or die(mysql_error()); // Zugangsdtaen zur DB
mysql_select_db("datenbank"); // Wählt die Datenbank

$sperre=time()-180// Zeit der IP SPERRE
$jetzt=time();
$ip getip();  

mysql_query("DELETE FROM ipsperre WHERE time<$sperre") or die(mysql_error()); // Löscht Einträge, die veraltet sind

$pruef=mysql_query("SELECT ip FROM ipsperre WHERE ip='$ip' AND userid='$userid'") or die(mysql_error());
if(@!
mysql_fetch_array($pruef)) { // Wenn die IP nicht gefunden wurde: Eintrag
    
mysql_query("INSERT INTO ipsperre (ip, time, userid) VALUES ('$ip', '$jetzt', '$userid')") or die(mysql_error());
    
    
$db->query("UPDATE ".PRE."_user SET visits=visits+1 WHERE userid='".$res['userid']."'");
}
} else { 
// ansonsten Verweigerung
    //echo "Deine IP wurde in der Datenbank gefunden, du hast nicht drei Minuten gewartet!";
}  ?>


Vola, das Script noch an der entsprechenden Stelle wo die Visits gezählt werden sollen einfügen und niemand kann den Zähler künstlich ohne größeren Aufwand hochzählen. Den Wert dann nur noch an Stelle des bisherigen {HITS} ausgeben lassen und fertig..
eyeland ist offline  
Seiten (1): 1  
 
Suche Optionen
» Erweiterte Suche
Druckansicht Druckansicht