User Tracking & Cookie Setzen

max

Erfahrenes Mitglied
Also ich mache mir Gerade eine Statistik funktion für Webseiten und da soll auch das surfverhalten des users aufgezeichnet werden. Also wie lange er auf welchen Seiten war.

Auf welchen Seiten und wie lange habe ich schon nur hatte ich das ganze bei der Umsetzung nicht ganz fertig gedacht und vergessen das ein User die Seite ja öfter als einmal besuchen kann.

zZ. ist es so dass alle Seiten die der User unter der gleichen IP adresse besucht hat aufgelistet werden auch wenn dazwischen ein Zeitunterschied von mehreren Tage liegt.

Jetzt will ich das ganze um so etwas wie eine session erweitern.

Und da kommt jetzt meine Frage kann ich mit JavaScript eine Session (ähnlich wie in PHP) erstellen und in ein Cookie speichern?

Funktioniert das ganze auch wenn auf der betreffenden Seite schon ein Cookie, bzw eine Session gestartet wurde?


Oder wenn das mit der Session so nicht geht wie könnte ich das ganze umsetzen.


Ich will das mit JavaScript lösen da ich die Statistik für verschiedene Seiten einfach verwenden will.
Dafür wird einfach dieser Code in die Seite eingefügt:
Code:
    <script type="text/javascript" src="http://.../go_stat.js" language="JavaScript"></script>
    <script language="JavaScript" type="text/javascript">
    	go_stat("user");
    </script>

Mit der Funktion go_stat hole ich mir alle Informationen und schicke sie an eine PHP Datei die diese dann in die Datenbank einträgt.

danke
max
 
Sessions o.ö. gibt es in JS nicht...da man aber Cookies speichern kann, wäre es auch möglich, soetwas "nachzuempfinden". Probleme mit anderen Cookies muss es dabei nicht gezwungenermassen geben,...schliesslich kann man mehr als einen Cookie speichern.
Du musst halt nur den richtigen ansprechen.

Warum aber willst du da überhaupt mit JS arbeiten?
 
Ich will mit JS arbeiten da mein System auch auf anderen Seiten laufen soll.

Es ist so aufgebaut das die eigentichen Verarbeitungsskripts immer auf meinem Server bleiben und die Daten die ich zur Erfassung benötige über das JS an ein PHP Skript gesendet werden das mir die Datein einträgt. Dadurch kann ich das ganze System auch auf Server verwenden die kein PHP unterstützen.

Ich habe schon etwas weiter gearbeitet und bin jetzt so weit dass ich mir ein Cookie erstelle in dem ich mir die aktuelle Zeit speichere (als Ersatz zu einer Session ID o.ä.).

Das ganze funktioniert im Prinzip auch schon ganz gut nur wird mir beim aufrufen meines Skripts der wert nicht in die Datenbank eingetragen bzw. nicht an mein erfassungs Skript (PHP) gesendet.

HTML:
  function setCookie(name, value, expires, path, domain, secure)
  {
  	document.cookie= name + "=" + escape(value) +
  		((expires) ? "; expires=" + expires.toGMTString() : "") +
  		((path) ? "; path=" + path : "") +
  		((domain) ? "; domain=" + domain : "") +
  		((secure) ? "; secure" : "");
  }
  function getCookie(name)
  {
  	var dc = document.cookie;
  	var prefix = name + "=";
  	var begin = dc.indexOf("; " + prefix);
  	if (begin == -1)
  	{
  		begin = dc.indexOf(prefix);
  		if (begin != 0) return null;
  	}
  	else
  	{
  		begin += 2;
  	}
  	var end = document.cookie.indexOf(";", begin);
  	if (end == -1)
  	{
  		end = dc.length;
  	}
  	return unescape(dc.substring(begin + prefix.length, end));
  }
  
  function gostatErfassen(user){
  //Cookie ueberpruefen
  if(document.cookie) {
  	var session = getCookie("sessionCookie");	
  }
  else {
  	jetzt = new Date();
  	setCookie("sessionCookie",jetzt.getTime());
  	var session = jetzt.getTime();
  }
  ...
  } // ende Funktion statErfassen

Die Variable Session wird dann an mein PHP Skript gesendet und in die DB eingetragen. Das funktioniert auch nur eben beim ersten Aufruf nicht.

mfg
max
 
Mmmh.... vielleicht hab ich heut Tomaten auf den Augen, aber wo wird dort überhaupt etwas an ein "Erfassungsskript" gesendet.:confused:

Für gewöhnlich arbeiten ähnliche Skripte mit Grafiken.
Die Leute binden eine Grafik von deinem Server ein(welche eigentlich das verarbeitende PHP-Skript ist).
Durch die HTTP-Anforderung hast du dann in PHP schon mal ein Haufen Infos verfügbar....
aufgerufene Seite(REFERER) , IP , Browser etc. ... Javascript ist somit erstmal überhaupt nicht. notwendig.

Das brauchst du erst, wenn du Sachen ermitteln willst, wie bspw. Auflösung, Plugins usw.
Diese Information hängst du dann per JS an die Adresse des Bildes ran.
 
Sven Mintel hat gesagt.:
Das brauchst du erst, wenn du Sachen ermitteln willst, wie bspw. Auflösung, Plugins usw..

Und ganau das erfasse ich auch.

Ich rufe mit meinem Javascript eben eine "Bilddatei" auf der ich einfach die ganzen Daten übergebe.

Ich habe das oben nicht hinzugefügt weil es bis auf das dass der Wert des Cookies beim Setzten nicht übertragen wird (ist aber die gleiche Variable wie wenn Cookie schon gesetzt ist).

also im Prinzip so:
HTML:
  if(Cookie da) {
     var session= Cookie Wert
     }
     else {
     Cookie setzten ("Wert");
     var session = Wert 
     }

Das ganze gebe ich am ende des JS so aus:
HTML:
 var InfoAusgabe = "<img src=\"http://www.statistikurl.at/erfassen/insert.php?user=" + user + "&resolution=" + scInfoWidth + "x" + scInfoHeight + "&colordepth=" + scInfoDepth + "&referer=" + usInfoReferer + "&plugins=" + plugins + "&session=" + session + "\" widht=\"1px\" height=\"1px\" alt=\"\" />";
  
  document.write(InfoAusgabe);
 
Zuletzt bearbeitet:
max hat gesagt.:
Code:
  if(Cookie da) {
     var session= Cookie Wert
     }
     else {
     Cookie setzten ("Wert");
     var session = Wert 
     }

...lasse mal die "var" s weg.
Die bewirken, dass die Variablen nur innerhalb der Funktion verfügbar sind.... du kannst also ausserhalb der Funktion, in der die Variable erstellt wurde, nicht darauf zugreifen.

Und warum setzt du den Cookie nicht in dem PHP-Skript?
Das hätte die selbe Wirkung, du wärst aber nicht von aktiviertem JS abhängig.
 

Neue Beiträge

Zurück