ein Kunde wollte von mir einen ganz normalen klassischen Textcounter auf seiner Webseite (im Contenido) haben. Ich habe den als Modul angelegt und dann eingefügt.
Nur falls jemand anderes es ebenfalls haben will:
Als Modul ohne Input (Einstellungen erfolgen im Output des Modules)
Code: Alles auswählen
<?
/////////////////////////////////////////
// Counter + Reloadsperre v1.0 Output
/////////////////////////////////////////
// 0=keine Reloadsperre, 1=Reloadsperre
$aktiv = 1;
// Zeit der Reloadsperre in Minuten
$zeit = 10;
// IP-Datei
$ipdatei = "ips.txt";
// Counterdatei
$datei = "counter.txt";
// Anzahl der führenden Nullen
$stellen = 6;
// Festlegen der Bild-Dimensionen
$breite="15";
$hoehe="19";
/////////////////////////////////////////
// IP-Reloadsperre
/////////////////////////////////////////
function pruf_IP($rem_addr) {
global $ipdatei,$zeit;
@$ip_array = file($ipdatei);
$reload_dat = fopen($ipdatei,"w");
$this_time = time();
for ($i=0; $i<count($ip_array); $i++) {
list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]);
if ($this_time < ($time_stamp+60*$zeit)) {
if ($ip_addr == $rem_addr) {
$gefunden=1;
}
else {
fwrite($reload_dat,"$ip_addr|$time_stamp");
}
}
}
fwrite($reload_dat,"$rem_addr|$this_time\n");
fclose($reload_dat);
return ($gefunden==1) ? 1 : 0;
}
/////////////////////////////////////////
// Abfrage
/////////////////////////////////////////
if (file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Falls die Datei existiert, wird sie ausgelesen und
// der dort enthaltene Wert um Eins erhöht.
$fp=fopen($datei,"r+");
$zahl=fgets($fp,$stellen);
$zahl++;
rewind($fp);
flock($fp,2);
fputs($fp,$zahl,$stellen);
flock($fp,3);
fclose($fp);
}else if (!file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Die Datei counter.txt existiert nicht, sie wird
// neu angelegt und mit dem Wert 1 gefüllt.
$fp=fopen($datei,"w");
$zahl="1";
fputs($fp,$zahl,$stellen);
fclose($fp);
} else {
// Die Datei existiert zwar, jedoch handelt
// es sich wahrscheinlich um den gleichen Besucher
$fp=fopen($datei,"r");
$zahl=fgets($fp,$stellen);
fclose($fp);
}
$zahl=sprintf("%0".$stellen."d",$zahl);
echo "|| Besucher ingesammt: $zahl";
?>
Input
Code: Alles auswählen
/////////////////////////////////////////
// Counter + Reloadsperre v1.0 Input
/////////////////////////////////////////
echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr>";
echo "<td width=\"202\">Reloadsperre :</td><td>
<INPUT TYPE=\"radio\" NAME=\"CMS_VAR[0]\" VALUE=\"0\""; if("CMS_VALUE[0]" ==0){echo "checked=checked";};echo"> off
<INPUT TYPE=\"radio\" NAME=\"CMS_VAR[0]\" VALUE=\"1\""; if("CMS_VALUE[0]" ==1){echo "checked=checked";};echo"> on</td></tr>";
echo "<tr>";
echo"<td width=\"202\">Reloadsperre in Minuten: </td>
<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\" ></td></tr>";
echo "<tr>";
echo"<td width=\"202\">Anzahl der führenden Nullen :
</td><td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\" ></td></tr>";
echo "</table>";
Code: Alles auswählen
<?
/////////////////////////////////////////
// Counter + Reloadsperre v1.0 Output
/////////////////////////////////////////
// 0=keine Reloadsperre, 1=Reloadsperre
$aktiv = CMS_VALUE[0];
// Zeit der Reloadsperre in Minuten
$zeit = CMS_VALUE[1];
// IP-Datei
$ipdatei = "ips.txt";
// Counterdatei
$datei = "counter.txt";
// Anzahl der führenden Nullen
$stellen = CMS_VALUE[2];
// Festlegen der Bild-Dimensionen
$breite="15";
$hoehe="19";
/////////////////////////////////////////
// IP-Reloadsperre
/////////////////////////////////////////
function pruf_IP($rem_addr) {
global $ipdatei,$zeit;
@$ip_array = file($ipdatei);
$reload_dat = fopen($ipdatei,"w");
$this_time = time();
for ($i=0; $i<count($ip_array); $i++) {
list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]);
if ($this_time < ($time_stamp+60*$zeit)) {
if ($ip_addr == $rem_addr) {
$gefunden=1;
}
else {
fwrite($reload_dat,"$ip_addr|$time_stamp");
}
}
}
fwrite($reload_dat,"$rem_addr|$this_time\n");
fclose($reload_dat);
return ($gefunden==1) ? 1 : 0;
}
/////////////////////////////////////////
// Abfrage
/////////////////////////////////////////
if (file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Falls die Datei existiert, wird sie ausgelesen und
// der dort enthaltene Wert um Eins erhöht.
$fp=fopen($datei,"r+");
$zahl=fgets($fp,$stellen);
$zahl++;
rewind($fp);
flock($fp,2);
fputs($fp,$zahl,$stellen);
flock($fp,3);
fclose($fp);
}else if (!file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Die Datei counter.txt existiert nicht, sie wird
// neu angelegt und mit dem Wert 1 gefüllt.
$fp=fopen($datei,"w");
$zahl="1";
fputs($fp,$zahl,$stellen);
fclose($fp);
} else {
// Die Datei existiert zwar, jedoch handelt
// es sich wahrscheinlich um den gleichen Besucher
$fp=fopen($datei,"r");
$zahl=fgets($fp,$stellen);
fclose($fp);
}
$zahl=sprintf("%0".$stellen."d",$zahl);
echo "|| Besucher ingesammt: $zahl";
?>