Verweildauer auf Seite messen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
beginnen
beispiel
besucher
date
geschehen
gleichheit
handhabe
message
mglichkeit
nutzer
riskant
sekunde
spalt
speicher
tabelle
test
verwirrung
zuletzt
zurecht
-
Hallo,
ich suche eine möglichkeit,
zu speichern, wie lange ein Besucher eine bestimmte Seite ansieht.
Beispiel:
Ich gehe auf meine Seite: www.test.de/index.php
Dann gehe ich nach x sekunden auf die Seite www.test.de/seite2.php (auch mein Server)
Nun möchte ich diese X Sekunden herausbekommen.
Dies sollte aber ohne Javascript geschehen.
Dass es möglich ist, weiß ich.
Ein Beispiel wäre hier:
http://www.webanalyse.fr/webanalyse/?detail=visit
Ich betone es nochmal:
Ohne Javascript -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Bei der von dir angeführten Seite ist doch der Code downzuloaden. Wieso machst du das nicht, und schaust dir einfach an, wie das gemacht ist!?
Zu faul?;) -
Hi,
Du könntest mit PHP den Timestamp speichern. Beim nächsten aufruf ziehst du dann vom aktuellen Timestamp den zuvor gespeicherten Timestamp ab. Und schon hast du die Sekunden.
MFG -
Ja, das geht, aber für die letzte angezeigte Seite habe ich dann keinen Wert.
Ich habe probiert dies herauszufiltern, aber ich finde mich in dem Code nicht zurecht. -
Ja, so wie "your-easy-message" gesagt hat.
Du nimmst z. B. MySql und machst ne Tabelle mit 2 Spalten.
In einer wird der momentane TS gespeichert (date("U")), im anderen die IP (getenv("REMOTE_ADDR")).
Dann schaust du beim betrehten der Seite ob die IP des Nutzers bereits in der Tabelle steht.
Wenn es so ist nimmst du den TS aus der DB und errechnest die Diverenz aus den momentanen und den Eingetragenen.
Dann weißt du wann er sich zuletzt auf der Seite bewegt hat.
Wenn nicht dann einfach Timestamp und IP eintragen.
Geht natürlich auch per Cookies oder Get, aber ich persönlich finde IP am schönsten.
-
Ja, so wie "your-easy-message" gesagt hat.
Du nimmst z. B. MySql und machst ne Tabelle mit 2 Spalten.
In einer wird der momentane TS gespeichert (date("U")), im anderen die IP (getenv("REMOTE_ADDR")).
Dann schaust du beim betrehten der Seite ob die IP des Nutzers bereits in der Tabelle steht.
Wenn es so ist nimmst du den TS aus der DB und errechnest die Diverenz aus den momentanen und den Eingetragenen.
Dann weißt du wann er sich zuletzt auf der Seite bewegt hat.
Wenn nicht dann einfach Timestamp und IP eintragen.
Geht natürlich auch per Cookies oder Get, aber ich persönlich finde IP am schönsten.
Why MySQL? Kannste das doch viel einfacher auch in Dateien speichern!
Ansonsten bin ich auch für TS! Cookies ist etwas riskant, da manche Leute kein cookie aktiviert haben... Deshalb bin ich auch für IP :D
mfg x-bLack -
Ich finde MySql einfach schöner. Gut geornet, einfach zu handhaben und so. Datensätze in Testfiles speichern liegt mir überhaupt nicht, aber ist ja auch egal da es sowieso jeder so macht wie er will.
IP hat natürlich auch Nebenrisiken. Zum Beispiel wenn jemand Proxys verwendet und so mehrere Member die selbe IP bekommen (glaube bei AOL sitzt man sogar hinter Zwangsproxys) oder ein Member später die IP eines anderen zugewießen bekommt weil er zufällig den selben ISP hat. (Das Risiko ist zwar gleich 0 aber theoretisch möglich.)
Und GET kann man gleich schmeißen weil es viel zu einfach zu manipulieren ist und man so Ergebnisse total verfälschen und für Verwirrung sorgen kann. ^^ -
Das mit der IP-gleichheit stimmt natürlich, das muss ich nochmal eingrenzen.
Ich habe aber noch ein weiteres Problem.
Wenn ich die Dauer errechne, dann bekomme ich immer eine Stunde zuviel heraus.
Beispiel Code:
$tzeit = $siteinfo['zeit']-$siteinfo['tmpzeit'];
$zeit = date("H:i:s", $tzeit);
Die ausgabe ist: 01:00:01
$siteinfo['zeit'] hat den Wert 1176227371
$siteinfo['tmpzeit'] hat den Wert 1176227370 -
Ja, weil der Timestamp um 01:00:01 beginnt.
Du sagst ihm er soll den Timestamp der in $tzeit steht umrechnen. Das heißt du bekommst in dem Fall eine Sekunde nach den Beginn davon raus.
Der Timestamp gibt die Zeit zwischen x und y an und dein Ergebniss nur x oder y. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage