Warning: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php on line 58 Text-Counter mit IP-Sperre ( Cookies oder Datei) PHP Tutorials nicht nur für Anfänger php-resource.de
In diesem Tutorial möchte
ich erklären wir man auf 2 arten einen Counter Programmieren kann, nebenbei werden ein paar Datei
Funktionen erklärt!
Bevor sie eines der Beiden Counter-Versionen
ausprobieren, erstellen sie bitte eine datei mit dem Namen counter.dat mit dem Wert 0 und den
CHMODS 666.
Cookies
Cookies( auch Kekse genannt) werden im Browser für
eine bestimmte Zeit aufbewahrt und speicher'n Daten! ( Cookies werden
automatisch ins PHP-Dokument eingelesen)
Datei Funktionen
Man kann mit PHP auch Dateien erstellen, dabei werden
die Dateien in einen bestimmten 'Modus' geöffnet!
Modus
Funktion
Dateizeiger
Anlegen?
r
Lesen
Anfang
Nein
r+
Lesen und Schreiben
Anfang
Nein
w
Lesen
Anfang
Ja
w+
Lesen und Schreiben
Anfang
Ja
a
Schrieben
Ende
Ja
a+
Lesen und Schreiben
Ende
Ja
mit der Funktion rewind($datei);
stellt man den Datenzeiger an den Anfang zurück.
Counter mit Cookies
<?php
//Liest die Ip aus!//
$ip = getenv ("REMOTE_ADDR");
//Erstellt das Cookie mit den Inhalt der Variable $Ip
Und das Cookie wird nach 24st. ( +86400 ) wieder gelöscht!//
setcookie ("ipsperre",$ip, time()+86400);
//Überprüft ob das Cookie "ipsperre" schon vorhanden ist//
if(isset($ipsperre))
{
//Liest in den Array "lesaus" die datei counter.dat ein//
$lesaus = file("counter.dat");
//Gibt den Array "lesaus" aus//
echo"$lesaus[0]";
}
// Ab hier beginnt die Verneinung von if(isset($ipsperre)) - sprich 'das cookie existiert nich'//
else
{
//Liest die datei counter.dat wieder in einen Array aus//
$lesaus = file("counter.dat");
//Der Ausgelsende Wert wird um 1 erhöt//
$lesaus[0]++;
//Die Datei counter.dat wird im Modus r+ (Lesen und Schreiben/Datenzeiger Am Anfang) geöffnet//
$datei = fopen("counter.dat","r+");
//Der Variable $datenm wir der Ausgelsende ( und um 1erhöte) Wert zugeteilt//
$datenm="$lesaus[0]";
//Der Datenzeiger wird wieder an den Anfang zurückgesetzt//
rewind($datei);
//Der Wert der variable $datenm wird in die Datei geschrieben//
fwrite($datei,$datenm);
//Die Datei wird geschlossen//
fclose($datei);
//Der Wert der vorhin um1 erhört wurden ist,wird ausgegeben//
echo"Besucher:$lesaus[0]";
}
?>
Counter mit Dateien
<?php
//Liest die Ip aus!//
$ip = getenv ("REMOTE_ADDR");
//Überprüfen ob Ip.dat schon erstellt ist//
if(file_exists("$ip.ip"))
{
//Liest in den Array "lesaus" die datei counter.dat ein//
$lesaus = file("counter.dat");
//Gibt den Array "lesaus" aus//
echo"$lesaus[0]";
}
//Ab hier beginnt die Verneinung - sprich 'die datei $ip.ip existiert nicht'//
else
{
//Liest die datei counter.dat wieder in einen Array aus//
$lesaus = file("counter.dat");
//Der Ausgelsende Wert wird um 1 erhöt//
$lesaus[0]++;
//Die Datei counter.dat wird im Modus r+ (Lesen und Schreiben/Datenzeiger Am Anfang) geöffnet//
$datei = fopen("counter.dat","r+");
//Der Variable $datenm wir der Ausgelsende ( und um 1erhöte) Wert zugeteilt//
$datenm="$lesaus[0]";
//Der Datenzeiger wird wieder an den Anfang zurückgesetzt//
rewind($datei);
//Der Wert der variable $datenm wird in die Datei geschrieben//
fwrite($datei,$datenm);
//Die Datei wird geschlossen//
fclose($datei);
//Der Wert der vorhin um1 erhört wurden ist,wird ausgegeben//
echo"$lesaus[0]";
//Die Datei $ip.ip wird im Modus 'w+' erstellt ( ist nötig für die IP-Sperre)//
$file = fopen("$ip.ip","w+");
//Der Variable $datenm wird der wert $ip zugewiesen//
$datenm="$ip";
//In die Datei wird die Variable $ip geschrieben//
fwrite($file,$datenm);
//Die Datei wird geschlossen//
fclose($file);
}
?>
Nachtrag
Natürlich kann man die IP's
auch in einer Datei Speicher'n
oder hier draus einen Counter-Service erstellen!