möglichkeit traffic zu loggen?

hallo,

ich betreibe ein kleines newsportal welches sich noch im aufbau befindet, und nun möchte ich die möglichkeit einbauen, den traffic aufzuzeichnen, sodass ich die visits, ip, refferer, datum, verwendeter browser, etc. statistisch auswerten kann.

Ich habe da an sowas gedacht:

PHP:
<?php

function log($ip, $ref, $brows ,$os)
{

//file öffnen

$logfile= 'logfile.txt';
$logdetails=  date("F j, Y, g:i a") . '  ' .$ip. '  ' .$ref. '  '.$brows. '  '. $os. '\n';

//open to append
$fp = fopen($logfile, "a");

//daten reinschreiben
fwrite($fp, $logdetails);

//close logfile
fclose($fp); 

}

?>

nun möcht ich wissen obs da andre möglichkeiten gibt.
v.a. würd mich interessieren ob ein .htaccess ordnerschutz für den ordner in dem sich das logfile befindet, das logfile vor dem zugriff durch das php-script schützt? oder ob das php-script schon zugriff auf das logfile hat.
und dann würd ich gern wissen obs da elegantere und effizientere methoden gibt.
Es gibt doch sicher probleme wenn bsp 50 personen gleichzeitig die seite aufrufen und die funktion log() ausgeführt wird, sodass das file nicht geöffnet werden kann oder ähnliches? dann würd mich interessieren ob soetwas nicht anderst umzusetzen ist?

p.s ich habe keine zugriff auf die serverlogs. ich verwende kostenlos angebotenen webspace.
 
v.a. würd mich interessieren ob ein .htaccess ordnerschutz für den ordner in dem sich das logfile befindet, das logfile vor dem zugriff durch das php-script schützt? oder ob das php-script schon zugriff auf das logfile hat.

Wie hier bereits beantwortet.

und dann würd ich gern wissen obs da elegantere und effizientere methoden gibt.

Ich schliesse mich GrafZahl an. Datenbanken sind nicht nur eleganter, die Daten sind auch einfacher auszuwerten.

Es gibt doch sicher probleme wenn bsp 50 personen gleichzeitig die seite aufrufen und die funktion log() ausgeführt wird, sodass das file nicht geöffnet werden kann oder ähnliches?

Soweit ich weiss gibt es einfach einen lock. Das heisst, falls sehr viele Clients gleichzeitig auf das File zugreifen, müssen einfach gewisse Clients ein wenig länger warten. Bei 50 Teilnehmer wird dies aber keinen nennenswerten Einfluss haben. Viel wichtiger ist die Frage: Wird das File nicht ein wenig lang? Solange du keinen vernünftigen log-rotate einbaust, wird das Dokument sehr schnell wachsen.

dann würd mich interessieren ob soetwas nicht anderst umzusetzen ist?

Ich empfehle dir einfach auf eine bereits existierende Lösung zurückzugreifen. Ich habe gute Erfahrungen mit Piwik gemacht.
 
Wie hier bereits beantwortet.

ich hab mal einpaar tests mit dem .htaccess file gemacht und feststellen müssen, dass die daten innerhalb des gschützen ordners (z.b. bilder die in der website verwendet werden) vor dem zugriff durch die index.html geschützt sind. d.h. es beim laden der seite nach einem passwort fragt, ansonsten keine bilder geladen werden. dies irritiert mich einwenig. da doch der zugriff auf das logfile ebenfalls geblockt bzw. passwortgeschützt sein müsste.
 
Hierbei musst du allerdings unterscheiden. Wenn du ein Bild in einem html-File einbindest, dann sendet dies beim laden der Seite einen neuen Request ab, welcher dann auf eine geschützte Ressource zugreifen wird. Dies läuft alles Clientseitig ab!

Wenn du per PHP auf eine solche Ressource zugreifst, dann erledigt der Server das, welcher nicht auf die access rights von htaccess greift.
 
alles klar. danke vielmals. ich werds mal mit ner DB machen. und dann mal n genaueren blick auf piwik werfen. sieht mal nett aus.

mfg
 
Ich würds in umgekehrter Reinfolge machen, falls dir Piwik gefällt sparst du dir nämlich die Zeit eine DB aufzubauen ;) Dies aber nur am Rande.
 
Zurück
Oben