Logfile über Webseitenbesuche
Hallo,
ich habe eine Webseite zur Vermietung von Ferienwohnungen und möchte alle Besucher in einer Logdatei festhalten.
Habe schon ein Datei gebastelt, aber es klappt nicht alles.
Bin noch Anfänger.
Die Date beinhaltet eine IP-Sperre.
Hier der Dateiinhalt:
Die Logfiles werden in die Datei counter.txt geschrieben.
Inhalt der Datei:
Mein Ziel ist es:
- alle Zugriffe egal wie oft zu protokollieren
- Zugriffe sollen mit IP-Adresse, Zugriffsdatum, Zugriffszeit erfasst werden
Leider komme ich hier nicht weiter, kann mir bitte einer von euch weiterhelfen!
Danke und Gruß
ich habe eine Webseite zur Vermietung von Ferienwohnungen und möchte alle Besucher in einer Logdatei festhalten.
Habe schon ein Datei gebastelt, aber es klappt nicht alles.
Bin noch Anfänger.
Die Date beinhaltet eine IP-Sperre.
Hier der Dateiinhalt:
<?
// ip-sperre in sekunden (Standard 1Jahr)
$expire = 31536000;
$filename = "neu2/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 . "\n";
fwrite($fp, $add_line);
$online++;
}
}
$add_line = $current_ip . "||" . $current_time . "\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>
<?
}
?>
Die Logfiles werden in die Datei counter.txt geschrieben.
Inhalt der Datei:
27-3 | 02-3 | 2011-3 | 22:06:39 | 3 |
27.02.2011 | 27.02.2011 | 27.02.2011 | 27.02.2011 | 27.02.2011 |
20:12:53 | 20:12:53 | 20:12:53 | 20:12:53 | 20:12:53 |
22:06:39 | 22:06:39 | 22:06:39 | 22:06:39 | 22:06:39 |
Mein Ziel ist es:
- alle Zugriffe egal wie oft zu protokollieren
- Zugriffe sollen mit IP-Adresse, Zugriffsdatum, Zugriffszeit erfasst werden
Leider komme ich hier nicht weiter, kann mir bitte einer von euch weiterhelfen!
Danke und Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 161930
Url: https://administrator.de/contentid/161930
Ausgedruckt am: 25.11.2024 um 19:11 Uhr
1 Kommentar
Hallo,
warum willst Du ein solches Datengrab erzeugen ?
Da es sich bei den IP-Adressen um persönliche Daten nach der neuesten Rechtssprechung handelt, gehe ich davon aus, dass von jedem Besucher Deiner Web-Site eine zustimmung zur Verarbeitung der personenbezogenen Daten vorliegt, oder ?
Was willst Du mit diesem Datenmüll anfangen ?
Die meisten Besucher Deiner Seite haben einen ADSL-Anschluss, diesem wird regelmäßig eine neue IP zugewiesen.
Was also ist der Sinn dieses Datenmülls ?
Weil ichs kann, tu ichs, oder was ?
Gruß
Anton
warum willst Du ein solches Datengrab erzeugen ?
Da es sich bei den IP-Adressen um persönliche Daten nach der neuesten Rechtssprechung handelt, gehe ich davon aus, dass von jedem Besucher Deiner Web-Site eine zustimmung zur Verarbeitung der personenbezogenen Daten vorliegt, oder ?
Was willst Du mit diesem Datenmüll anfangen ?
Die meisten Besucher Deiner Seite haben einen ADSL-Anschluss, diesem wird regelmäßig eine neue IP zugewiesen.
Was also ist der Sinn dieses Datenmülls ?
Weil ichs kann, tu ichs, oder was ?
Gruß
Anton