Webcounter wird nicht angezeigt
Hallo,
bin im Bereich PHP Anfänger und habe für die Homepage eines Bekannten einen Webcounter gebastelt.
Der Counter hat mal funktioniert und nachdem ich den Ordner von neu2 auf Besucherzaehler umbenannt habe wird mir der Counter nicht mehr angezeigt.
PHP funktioniert auf dem Webserver. Hoster ist Strato.
PHP Version: PHP Version 4.4.9
System: SunOS localhost 5.8 Generic_108528-17 sun4u
Habe den Webcounter folgendermaßen in meine index.php implementiert
Anbei der Code vom Counter:
Inhalt der counter.txt:
Anhand des Inhaltes kann man sehen, dass es schonmal geklappt hat und jetzt nicht mehr.
Kann mir bitte einer weiterhelfen!
Danke und Grüße
bin im Bereich PHP Anfänger und habe für die Homepage eines Bekannten einen Webcounter gebastelt.
Der Counter hat mal funktioniert und nachdem ich den Ordner von neu2 auf Besucherzaehler umbenannt habe wird mir der Counter nicht mehr angezeigt.
PHP funktioniert auf dem Webserver. Hoster ist Strato.
PHP Version: PHP Version 4.4.9
System: SunOS localhost 5.8 Generic_108528-17 sun4u
Habe den Webcounter folgendermaßen in meine index.php implementiert
<!-- Besucherzaehler - Anfang -->
<?php include "Besucherzaehler/counter.php"; ?>
<!-- Besucherzaehler - Ende -->
Anbei der Code vom Counter:
<?
// ip-sperre in sekunden (Standard 1Jahr)
$expire = 31536000;
$filename = "/Besucherzaehler/counter.txt";
if (file_exists($filename))
{
$ignore = false;
$current_agent = (isset($_SERVER['HTTP_USER_AGENT'])) ? addslashes(trim($_SERVER['HTTP_USER_AGENT'])) : "no agent";
$current_time = date ("H:i:s");
$current_ip = $_SERVER['REMOTE_ADDR'];
// daten einlesen
$c_file = array();
$handle = fopen($filename, "r");
if ($handle)
{
while (!feof($handle))
{
$line = trim(fgets($handle, 4096));
if ($line != "")
$c_file = $line;
}
fclose ($handle);
}
else
$ignore = true;
// bots ignorieren
if (substr_count($current_agent, "bot") > 0)
$ignore = true;
// hat diese ip einen eintrag in den letzten expire sec gehabt, dann igornieren?
for ($i = 1; $i < sizeof($c_file); $i++)
{
list($counter_ip, $counter_time) = explode("||", $c_file[$i]);
$counter_time = trim($counter_time);
if ($counter_ip == $current_ip && $current_time-$expire < $counter_time)
{
// besucher wurde bereits gezählt, daher hier abbruch
$ignore = true;
break;
}
}
// counter hochzählen
if ($ignore == false)
{
if (sizeof($c_file) == 0)
{
// wenn counter leer, dann füllen
$add_line1 = date("W") . "-1||" . date("d") . "-1||" . date("m") . "-1||" . date("Y") . "-1||" . $current_time . "||" . "1||1" . "\n";
$add_line2 = $current_ip . "||" . date ("d.m.Y") . "||" . $current_time . "\n";
// daten schreiben
$fp = fopen($filename,"w+");
if ($fp)
{
flock($fp, LOCK_EX);
fwrite($fp, $add_line1);
fwrite($fp, $add_line2);
flock($fp, LOCK_UN);
fclose($fp);
}
// werte zur verfügung stellen
$week = $day = $month = $year = $all = $record = 1;
$record_time = $current_time;
$online = 1;
}
else
{
// counter hochzählen
list($week_arr, $day_arr, $month_arr, $year_arr, $record_time, $all, $record) = explode("||", $c_file);
// week
$week_data = explode("-", $week_arr);
$week = $week_data[1];
if ($week_data == date("W")) $week++; else $week = 1;
// day
$day_data = explode("-", $day_arr);
$day = $day_data[1];
if ($day_data == date("d")) $day++; else $day = 1;
// month
$month_data = explode("-", $month_arr);
$month = $month_data[1];
if ($month_data == date("m")) $month++; else $month = 1;
// year
$year_data = explode("-", $year_arr);
$year = $year_data[1];
if ($year_data == date("Y")) $year++; else $year = 1;
// all
$all++;
// neuer record?
$record_time = trim($record_time);
if ($day > $record)
{
$record = $day;
$record_time = $current_time;
}
// speichern und aufräumen und anzahl der online leute bestimmen
$online = 1;
// daten schreiben
$fp = fopen($filename,"w+");
if ($fp)
{
flock($fp, LOCK_EX);
$add_line1 = date("W") . "-" . $week . "||" . date("d") . "-" . $day . "||" . date("m") . "-" . $month . "||" . date("Y") . "-" . $year . "||" . $record_time . "||" . $all . "||" . $record . "\n" ;
fwrite($fp, $add_line1);
for ($i = 1; $i < sizeof($c_file); $i++)
{
list($counter_ip, $counter_time) = explode("||", $c_file[$i]);
// übernehmen
if ($current_time-$expire < $counter_time)
{
$counter_time = trim($counter_time);
$add_line = $counter_ip . "||" . $counter_time . "||" . date ("d.m.Y") . "\n";
fwrite($fp, $add_line);
$online++;
}
}
$add_line = $current_ip . "||" . $current_time . "||" . date ("d.m.Y") . "\n";
fwrite($fp, $add_line);
flock($fp, LOCK_UN);
fclose($fp);
}
}
}
else
{
// nur zum anzeigen lesen
if (sizeof($c_file) > 0)
list($week_arr, $day_arr, $month_arr, $year_arr, $record_time, $all, $record) = explode("||", $c_file);
else
list($week_arr, $day_arr, $month_arr, $year_arr, $record_time, $all, $record) = explode("||", date("W") . "-1||" . date("d") . "-1||" . date("m") . "-1||" . date("Y") . "-1||" . $current_time . "||" . "1||1");
// week
$week_data = explode("-", $week_arr);
$week = $week_data[1];
// day
$day_data = explode("-", $day_arr);
$day = $day_data[1];
// month
$month_data = explode("-", $month_arr);
$month = $month_data[1];
// year
$year_data = explode("-", $year_arr);
$year = $year_data[1];
$record_time = trim($record_time);
$online = sizeof($c_file) - 1;
}
?>
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">
<p align="center">
<font face="Verdana" size="3"><br>
Sie sind der <? echo $all; ?>. Besucher auf unserer Seite!
</font>
</p>
</td>
</tr>
</table>
<?
}
?>
Inhalt der counter.txt:
Anhand des Inhaltes kann man sehen, dass es schonmal geklappt hat und jetzt nicht mehr.
09-6||03-6||03-6||2011-6||21:00:10||8364||8370
80.187.106.200||19:37:04||03.03.2011
91.34.238.53||20:20:18||03.03.2011
88.78.34.172||20:24:17||03.03.2011
79.254.128.240||20:34:23||03.03.2011
83.133.125.202||21:00:10||03.03.2011
Kann mir bitte einer weiterhelfen!
Danke und Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 162348
Url: https://administrator.de/contentid/162348
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Anfaenger500,
Habe nur mal eben gaanz schnell drauf geguckt und ich frage mich was denn passiert wenn:
fehlschlägt ?
Konnte auf die schnelle keinen passenden else-Block finden !
Und zweitens, ändere "<? ... ?>" in "<?php ... ?>" !
Die Short-Open-Tags (erstere) sollten nur auf Entwicklungsumgebungen verwendet werden, das sie bei eurem Hoster nun auch aktiviert sind muss nicht immer so bleiben !
Also am besten einfach immer "<?php .. ?>" benutzen, dann kann nichts schief gehen - jedenfalls nicht deswegen *fg*
~Arano
Habe nur mal eben gaanz schnell drauf geguckt und ich frage mich was denn passiert wenn:
if (file_exists($filename))
Konnte auf die schnelle keinen passenden else-Block finden !
Und zweitens, ändere "<? ... ?>" in "<?php ... ?>" !
Die Short-Open-Tags (erstere) sollten nur auf Entwicklungsumgebungen verwendet werden, das sie bei eurem Hoster nun auch aktiviert sind muss nicht immer so bleiben !
Also am besten einfach immer "<?php .. ?>" benutzen, dann kann nichts schief gehen - jedenfalls nicht deswegen *fg*
~Arano