yubb.de-Logo
Tutorials
yubb@yubb
yubbService
Inside yubb

Einfacher textbasierter Counter

Mach deinen eigenen PHP-Counter ohne Beanspruchung fremder Seiten.

Als ersters erstellt ihr 2 Textdateien (zB. mit dem Editor). Eine benennt ihr mit "ip.txt" und die andere mit "count.txt", wobei in count.txt "0" stehen muss.

Die Datei ip.txt ist dazu da, eine IP-Sperre von einer von dir definierbaren Zeit zu erstellen.
In die Datei count.txt wird die Zahl der Besucher geschrieben.

Jetzt muss der Counter mit einem Code nur noch in deine Site eingebunden werden

PHP-Datei:
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
61
62
63
64
65
66
<?php

$DateinameCount 
"count.txt";
$DateinameIP    "ip.txt";
$Zeitsperre     86400// Deffiniere hier die ip Sperre in Sekunden

#######################################

$Gefunden FALSE;
$IPListe file($DateinameIP);

if(
count($IPListe)>0)
{
    
// Löscht veraltete IPs
    
foreach($IPListe as $Zeile)
    {
        
$GesplitteteZeile explode("|"$Zeile);
        if((
$GesplitteteZeile[0]+$Zeitsperre)>time())
        {
            
$NeueIPListe[] = trim($Zeile)."\n";
        }
    }
    
    
// Sucht nach der aktuellen IP in der ip.txt
    
foreach($NeueIPListe as $Zeile)
    {
        
$GesplitteteZeile explode("|"$Zeile);
        if(
trim($GesplitteteZeile[1])==$HTTP_SERVER_VARS["REMOTE_ADDR"])
        {
            
$Gefunden TRUE;
        }
    }
}

$FilePointerIP fopen($DateinameIP"w");
if(
count($IPListe)>0)
{
    foreach(
$NeueIPListe as $Zeile)
    {
        
fwrite($FilePointerIPtrim($Zeile)."\n");
    }
}

// Wenn IP nicht gefunden: Eintragen
if(!$Gefunden)
{
    
fwrite($FilePointerIPtime()."|".$HTTP_SERVER_VARS["REMOTE_ADDR"]."\n");
}
fclose($FilePointerIP);

$FilePointerCount fopen($DateinameCount"r+");
$Counter fread($FilePointerCountfilesize($DateinameCount)); 

// Wenn IP nicht gefunden: Counter um 1 erhöhen
if(!$Gefunden)
{
    
$Counter++;
    
rewind($FilePointerCount);
    
fwrite($FilePointerCount$Counter);
}
fclose($FilePointerCount);

// Couner ausgeben
echo $Counter;

?>


Eins ist noch ganz wichtig! Du musst für ip.txt und count.txt die chmod-Rechte auf 666 stellen! Sonst funktioniert der ganze Counter nicht! Ausserdem musst du die Seite, in der du den Counter einbindest, als .php abspeichern!

Auf http://www.fabian.at.tc könnt ihr euch im rechten Frame den Counter live ansehen!

Ich hoffe ihr könnt den Script gebrauchen
lg fabs



Weiterführende Links:
Alles für alle^^

Geschrieben von fabs am 11.08.2004 (7759x gelesen)
weiterempfehlen weiterempfehlen   Druckversion Druckversion   kommentieren kommentieren

Ich hab ein prob damit ... bei mir kommt nach dem zweiten, dritten etc aufrufen von meiner hp dieser fehler:

Warning: Invalid argument supplied for foreach() in .../osrek.de.tf/index2.php on line 329

Warning: Invalid argument supplied for foreach() in .../osrek.de.tf/index2.php on line 342

kann man die ip-sperre ganz aufheben?
Geschrieben von osrek
die IP-Sperre hebt man damit auf, indem man einfach bei Zeitsperre in die Anführungszeichen statt einer Zahl wie zB 86000 einfach 0 Schreibt : 0 Sekunden IP Sperre!
Geschrieben von fabs
Der Counter ist ziemlich genial, nur zählt er alle Besuche der Suchmaschienenbots mit. Das kann man aber verhindern, wenn man um den ganzen Counter eine If-Schleife macht:

PHP-Datei:
1
2
3
4
5
<?php
if(!ereg("bot"$_SERVER["HTTP_USER_AGENT"])) {
/* jetzt der nromale Code */
}
?>
Geschrieben von dasepp
ähh bei mir isses so das immer 0 angezeigt wird und das von dasepp geht gar nich da kommt dann
Parse error: parse error in e:\easyphp1-8\www\counter\counter.php on line 2
Geschrieben von Jojo2020