> Forums > PHP

P

PHP-Counter

Erstellt
Okt. '06
letzte Antwort
Noch keine
Antworten
Noch keine
Aufrufe
1.5T
2
„Gefällt mir“
Abos
Noch keine
Mi., 18. Oktober, 2006 um 23:10
#1

PHP:
<?php

//***********************************************************
//* PHP-Counter
//* Grafischer Zugriffszähler mit Reload-Sperre.
//*
//* einfache Einbindung in HTML-Dateien mit:
//*
//* <script language="javascript1.2">
//* <!--
//* ref=escape(document.referrer);
//* document.write("<img src=\"./counter.php4?ref="+ref+"\">"
//* //-->
//* </script>
//* <noscript>
//* <img src="./counter.php4">
//* </noscript>
//*
//*
//*
//*
//***********************************************************

//***********************************************************
// Konfiguration
//***********************************************************

$OFFSET = 54; // Wert, der zum aktuellen Counterstand hinzugefügt
$FONT = 5; // Größe der Schrift (1..5)
$HEIGHT = 13; // Höhe des Counter-Bildes (je nach Schriftgröße)
$WIDTH = 30; // Breite des Counter-Bildes (je nach Schriftgröße)
$MAXIP = 10; // Anzahl der zu speicherden IP-Adressen&Timecode für Reload-Sperre
$FILENAME = "counter.dat"; // Name der Datei, in der die Counter-Daten gespeichert werden

// (wird automatisch angelegt. Falls man auf dem Server keine
// Rechte zum Anlegen von Dateien hat, einfach eine leere Datei
// per FTP mitkopieren)
$TIMEOUT = 1800; // Zeit(in Sekunden), nach der Zugriffe von derselben IP wieder gezählt werden.

$TEXT = 0x000000; // Textfarbe als Hex-RGB (0xRRGGBB)
$BACKGROUND = 0xffffff; // Hintergrundfarbe als Hex-RGB (0xRRGGBB)


$ip = getenv("REMOTE_ADDR"
$currtime = time();

if(!file_exists($FILENAME))
{
$fd = fopen($FILENAME , "w+" );
fwrite( $fd, "0"
fclose($fd);
}

// prüfen, ob Counter-Datei existiert, da sonst Skriptfehler auftritt
if(file_exists($FILENAME))
{
$file_array = file($FILENAME);
$file_ip = array_slice($file_array,1, $MAXIP);
$counter = $file_array;

$found = false;

// auf Reload prüfen
foreach($file_ip as $var)
{
list($lastip,$lasttime) = explode(':',$var);
if( !strcmp($ip,$lastip) && ( ($currtime-$lasttime) < $TIMEOUT))
{
$found = true;
}
}
if(!$found)
{
$counter = $counter+1;
array_unshift($file_ip,($ip.":".$currtime."\n&quot);
$file_ip = array_slice($file_ip,0, $MAXIP);
$fd = fopen($FILENAME , "w+" );
fwrite( $fd, $counter."\n"

foreach($file_ip as $var) fwrite( $fd, $var);
fclose($fd);

// write logfile about request (optional, requires "accesslog.php" in same directory)
include("accesslog.php"
}
}
else $counter = 0;

header("content-Type: image/png"

$img = ImageCreate($WIDTH, $HEIGHT);

$bg_color = ImageColorAllocate($img, ($BACKGROUND >> 16)&255, ($BACKGROUND >> &255, $BACKGROUND&255);
$text_color = ImageColorAllocate($img, ($TEXT >> 16)&255, ($TEXT >> &255, $TEXT&255);

ImageString($img,$FONT,1,0,$counter+$OFFSET,$text_color);

ImagePng($img);
ImageDestroy($img);
?>




C&M distanziert sich konkret und ausdrücklich vom Inhalt dieses Postings.
Der Ersteller des Postings haftet für seine Äußerungen.
Inhalte, die nicht den Forumsregeln entsprechen sind bitte vom Leser zu melden ...

echo "Php Rules!";
http://www.php.net

> Forums > PHP

Du hast bereits für diesen Post abgestimmt...

;-)



Logo https://t.ress.at/eHssa/




Top