Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 16. Oktober 2015 11:18
- Dancer62
- Server-Pate
- Ort: 26345 Bockhorn, Niedersachsen
- Registriert: 08. November 2013
- Beiträge: 414
[GELÖST] Log-Dateien über Zugriff auf einzelne Seiten erstellen ?
Hallo Forengemeinde,
nach langer Zeit der Abwesenheit (aber nicht Untätigkeit) habe ich mich wieder intensiver mit CMSms beschäftigt und bin auf ein - wie ich hoffe, kleines - Problem gestoßen : ich möchte wissen, wer (ggfs. wann) in meinem internen Bereich (Zugang nur mit Nutzername und Passwort) Zugriff auf welche Seiten gehabt hat. Das soll weniger der Kontrolle, als dem Nachweis dienen, dass jemand eine bestimmte Seite angeschaut hat.
Das Ganze sollte entweder als eine Log-Datei mit Einträgen für alle (Unter-)Seiten einer Seite bzw. bestimmte Seiten oder als Log-Datei pro Seite realisiert / konfiguriert werden können.
Wenn es da bereits ein Modul gibt, wäre das natürlich toll, aber ich habe da auf Forge auf die Schnelle nichts gefunden. Falls jemand etwas in der Richtung programmiert haben sollte, wäre ich über eine Unterstützung bei der Realisierung natürlich sehr dankbar.
Vielen Dank im Voraus,
Dancer62
Man ist so alt, wie man sich fühlt...
Offline
#2 16. Oktober 2015 18:18
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Log-Dateien über Zugriff auf einzelne Seiten erstellen ?
Wenn es da bereits ein Modul gibt, wäre das natürlich toll,
Das gesuchte Modul könnte Hitcounter heißen
http://dev.cmsmadesimple.org/projects/hitcounter
aber ich habe da auf Forge auf die Schnelle nichts gefunden.
Die Suche dort funktioniert immer noch nicht .
Offline
#3 19. Oktober 2015 12:13
- Dancer62
- Server-Pate
- Ort: 26345 Bockhorn, Niedersachsen
- Registriert: 08. November 2013
- Beiträge: 414
Re: [GELÖST] Log-Dateien über Zugriff auf einzelne Seiten erstellen ?
Das gesuchte Modul könnte Hitcounter heißen
Danke cyberman,
aber wenn ich die Beschreibung des Moduls richtig verstanden habe, dann kann der HitCounter zwar eine IP-Adresse und auch einen User-Agent zurückverfolgen, er sagt mir aber nicht den Namen des eingeloggten Nutzers - und nur der ist für mich eigentlich interessant...
Könnte man das Modul FEU dazu benutzen ? Ich habe in dessen Hilfe gelesen, dass ich mit Hilfe von Smarty einige Informationen 'herauskitzeln' kann. Die entscheidende Frage ist allerdings, wie bekomme ich den Namen des (eingeloggten) Nutzers heraus ? Ich kann zwar mittels 'get_userinfo' und 'get_userid' einige Informationen erhalten, aber dazu muss ich den 'username' wissen. Und wenn ich den weiß, brauche ich den Rest nicht (mehr) .
Oder müsste ich mit Hilfe einer "FOR...EACH"-Schleife alle Nutzernamen der Datenbank (sind max. 120) auf die jeweilige 'userid' abfragen und mit der eingetragenen 'userid' vergleichen ?
Wird die 'userid' vom System vergeben oder kann / muss ich sie in FEU für die einzelnen Nutzer selber vergeben ? Falls sie vom System vergeben wird, ist sie dann "fest" an diesen Nutzer gebunden oder kann sie sich - wie z.B. die IP-Adresse - bei jedem Einloggen dieses Nutzers ändern ?
Kann ich auch nachträglich noch weitere Felder (z.B. User-ID) für bestehende Nutzer zur FEU-Datenbank hinzufügen ?
Vielen Dank schon mal im Voraus,
Dancer62
Beitrag geändert von Dancer62 (19. Oktober 2015 12:31)
Man ist so alt, wie man sich fühlt...
Offline
#4 19. Oktober 2015 14:00
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.435
Re: [GELÖST] Log-Dateien über Zugriff auf einzelne Seiten erstellen ?
Sowas ähnliches hatten wir doch schon mal: http://www.cmsmadesimple.de/forum/viewtopic.php?id=2096
Versuchs mal mit diesem Plugin:
<?php
function smarty_function_feu_accesslog($params, &$template)
{
# get current page
if(!$content_obj = cms_utils::get_current_content())
return;
# get FEU module
if(!$feusers = &cms_utils::get_module('FrontEndUsers'))
return;
# get user id
if(!$userid = $feusers->LoggedInId())
return;
# get user name
$username = $feusers->GetUserName($userid);
# get logfile
$config = cmsms()->GetConfig();
$dir = $config['uploads_path'] . DIRECTORY_SEPARATOR . 'feu_accesslog';
if(!is_dir($dir))
mkdir($dir, 755, true);
$logfile = $dir . DIRECTORY_SEPARATOR . $content_obj->Alias();
# write log
if(!$fp = fopen($logfile, "a"))
return;
while(!flock($fp, LOCK_EX|LOCK_NB, $wouldblock))
{
if ($wouldblock)
usleep(1);
else
{
fclose($fp);
return;
}
}
$timestamp = time();
$date = date("d.m.Y", $timestamp);
$time = date("H:i:s", $timestamp);
fputcsv($fp, array($date, $time, $username));
flock($fp, LOCK_UN);
fclose($fp);
}
?>
Als "function.feu_accesslog.php" im Verzeichnis "/plugins" speichern und im Template oder Seiteninhalt mit {feu_accesslog} aufrufen.
Die Logs werden im Verzeichnis "/uploads/feu_accesslog" gespeichert.
Pro Seite wird eine Datei mit dem Namen des Seitenalias angelegt.
Gespeichert wird Datum, Uhrzeit und Benutzername im CSV Format (z.B. für die spätere Auswertung via Excel o.ä.).
Geht das in die richtige Richtung?
Beitrag geändert von NaN (19. Oktober 2015 14:14)
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#5 19. Oktober 2015 15:44
- Dancer62
- Server-Pate
- Ort: 26345 Bockhorn, Niedersachsen
- Registriert: 08. November 2013
- Beiträge: 414
Re: [GELÖST] Log-Dateien über Zugriff auf einzelne Seiten erstellen ?
Super NaN,
das sieht genau danach aus, wonach ich gesucht habe. Werde das gleich mal einbauen und schauen, ob's funktioniert...
Edit:
Es hat funktioniert !!! Vielen Dank an NaN, ich kann dieses Script nur uneingeschränkt weiterempfehlen
Beitrag geändert von Dancer62 (20. Oktober 2015 11:12)
Man ist so alt, wie man sich fühlt...
Offline
#6 22. Oktober 2015 23:25
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Log-Dateien über Zugriff auf einzelne Seiten erstellen ?
dann kann der HitCounter zwar eine IP-Adresse und auch einen User-Agent zurückverfolgen, er sagt mir aber nicht den Namen des eingeloggten Nutzers - und nur der ist für mich eigentlich interessant...
Ok, dann hab ich wohl dies hier
Das soll weniger der Kontrolle, als dem Nachweis dienen, dass jemand eine bestimmte Seite angeschaut hat.
wohl etwas zu global verstanden .
Offline
Seiten: 1