Hallo,
ich würde gerne die Anzahl der Besuche eines Nutzers auf meiner Seite zählen.
Ich dachte mir das ich einen eindeutigen Nutzer-Code erzeuge und dann ein Cookie mit diesem Code sowie einem Zähler setze und die Besuche hochzähle. Da ein Benutzer aber auf verschiedenen Einstigs-Seiten kommen kann muss ich das Cookie natürlich in allen möglichen Einstiegsseiten abfragen. Damit zähle ich aber dann nicht die Anzahl der Besuche sonden die Anzahl der besuchten Seiten.
Hat jemand eine Idee wie ich das machen muss.
Hallo soso,
hier ein grober Ablaufplan:
- Nutzer kommt auf die Website (egal auf welche Unterseite deiner Website)
- Wenn Nutzer kein Cookie hat:
– Besucherzaehler wird +1 gesetzt
– Nutzer bekommt Cookie, welches eine bestimmte Zeit (und nicht nur waehrend der Browser-Session) gueltig ist
Das ganze passiert Idealer weise in einer PHP-Datei die am Anfang jeder Seite deiner Website included wird.
Gruesse
Stefan
Hallo Stefan,
was ist denn wenn der Besucher bereits ein Cookie hat?
a) ich zähle auch dann hoch -> Es werden die besuchten Seiten gezählt!
b) ich zähle in diesem Fall nicht hoch -> Es wird nur der erste Besuch gezählt!
Das ist in dem Fall dir ueberlassen. Ich wuerde in dem Fall beides Zaehlen.
was ist denn wenn der Besucher bereits ein Cookie hat?
a) ich zähle auch dann hoch -> Es werden die besuchten
Seiten gezählt!
b) ich zähle in diesem Fall nicht hoch -> Es wird nur der
erste Besuch gezählt!
Das ist in dem Fall dir ueberlassen. Ich wuerde in dem Fall
beides Zaehlen.
Ist aber beides nicht das was ich eigentlich will!
Es werden in beiden Fällen nicht die Anzahl der Besuche dieses bestimmten Benutzers gezählt.
a) Zählt die Anzahl der von diesem Benutzer besuchten Seiten
b) Zählt nur bis 1 (da der Benutzer ja schon ein Cookie hat)
Ist aber beides nicht das was ich eigentlich will!
Es werden in beiden Fällen nicht die Anzahl der Besuche dieses
bestimmten Benutzers gezählt.
Oh, das hatte ich ueberlesen.
In dem Fall solltest Du dem Nutzer ein Cookie zuweisen, welches eine moeglichst eindeutige Zeichenfolge enthaelt.
Hier gibt es in PHP z.B. die Funktion uniqid() http://de.php.net/manual/de/function.uniqid.php
Diese ID schreibst du dir dann auch irgendwo hin (Datenbank?) und kannst dann damit den Besucher wenn er deine Seite wieder besucht identifizieren.
Ja das mache ich bereits. Jeder Kunde hat eine eindeutige Kunden_Nummer. Diese Kunden_Nummer wird im Cookie gespeichert. Das Problem ist aber die Anzahl der Besuche zu zählen. Wie ich es auch mache es ist irgendwie nie das was ich zählen will.
Hallo
Ich hätte folgende Vorschläge:
-Du überprüfst anhand von $_SERVER[„HTTP_REFERER“], ob der Benutzer zuvor schon auf deiner Homepage war (nicht jeder Browser sendet den Referer)
-Du hängst an alle Links innerhalb deiner Homepage ein ?war_schon_mal_da an und kannst dann beim Aufruf einer Seite prüfen, ob die Variable $_GET[‚war_schon_mal_da‘] existiert. Wenn ja, dann ist es kein neuer Besuch. Allerdings siehts eventuell doof aus und wenn sich der Nutzer den Link mit dem ?war_schon_mal_da als Lesezeichen speichert, dann werden seine Besuche in Zukunft nicht mehr gezählt.
-Du speicherst bei jedem Seitenauf im Cookie des Nutzers die aktuelle Uhrzeit. Dann kannst du bei jedem Seitenaufruf auch sehen, wann er das letzte Mal eine deiner Seiten aufgerufen hat. Ist dies länger als 10 Minuten her, zählt der Aufruf als neuer Besuch.
Johannes
Hallo Johannes,
danke für deine Tips.
Die Methode mit $_SERVER[„HTTP_REFERER“] hört sich vielversprechend an. Welche Browser senden denn diese Info?
Deine zweite Methode hab ich mir auch schon in einer etwas anderen Variante überlegt. Ich kann ja bei bei jedem Aufruf meiner Seite ein session_start() machen und die SID auswerten. Das sieht dann auch nicht so doof aus in der Adressleiste. Ich weiss aber noch nicht genau wie ich das machen muss damit es in allen Fällen richtig funktioniert. Wenn dir dazu was einfällt sag mal bescheid. Auf jeden Fall scheint es so zu sein das ich nur die Besucher zählen kann die auch Cookies erlauben da ich sie sonst nicht eindeutig identifizieren kann.
Gruss soso
Die Methode mit $_SERVER[„HTTP_REFERER“] hört sich
vielversprechend an. Welche Browser senden denn diese Info?
Soweit ich weiss, machen das alle üblichen Browser, wenn man es ihnen nicht verbietet.
Deine zweite Methode hab ich mir auch schon in einer etwas
anderen Variante überlegt. Ich kann ja bei bei jedem Aufruf
meiner Seite ein session_start() machen und die SID auswerten.
Du kannst ja bei jedem Seitenaufruf die Session aufmachen, schauen ob schon was drinsteht und wenn nicht, zählst du das als Besuch und schreibst was rein.
session\_start();
if (!isset($\_SESSION['war\_schon\_mal\_da'])
{
$besuche++;
$\_SESSION['war\_schon\_mal\_da']=1;
}
Auf jeden Fall scheint es so zu
sein das ich nur die Besucher zählen kann die auch Cookies
erlauben da ich sie sonst nicht eindeutig identifizieren kann.
Ja, das ist wohl war.