IT-Academy Logo
Sign Up Login Help
Home - Programmieren - PHP - PHP-Counter mit Session



PHP-Counter mit Session

Jeder Webmaster würde gerne sehen, wieviele Besucher er hat. Die normalen Counter zeigen an wieviele Seitenaufrufe es gab, nicht wieviele Besucher es gab. Dies kann man ändern mit Sessions.


Autor: Patrick Faes (dreamer)
Datum: 31-12-2003, 23:18:14
Referenzen: keine
Schwierigkeit: Fortgeschrittene
Ansichten: 10217x
Rating: 7.38 (8x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einleitung

OK, Sie haben also eine Website mit PHP und MySQL und möchten nicht einen sehr komplizierten Counter auf Ihrer Seite, aber Sie möchten schon wissen welche Teile Ihrer Website viel Traffic generieren. Ohne die Sachen zu kompliziert zu machen und eine ganze neue Datenbank anzulegen, können Sie dies erreichen ohne einer große Datenbank.

Was wir hier erreichen wollen, ist eine Methode um die Anzahl der "Sessions" zu zählen. Es ist nicht praktisch jedesmal wenn ein und derselbe Besucher auf einer Ihrer Seiten klickt dies zu speichern. Es würde Ihre Statistiken wie eine Rakete in die Höhe gehen lassen und so sind die Resultate nicht mehr realistisch. Deshalb werden wir hier die Besucher zählen und registrieren was die so machen.

Wir braucher hierzu MySQL, PHP und die Session-Technik von PHP (wir machen keinen Gebrauch von Cookies), sondern speichern die Daten auf dem Webserver.

Die Tabelle bauen
SQL-query :
CREATE TABLE `counter` ( 
`count_nr` VARCHAR( 255 ),
`count_id` VARCHAR( 255 ) 
);
Wir bauen hier eine Tabelle mit dem Namen "counter". Er hat zwei Felder: count_nr und count_id. Der Nutzen wird später deutlich.
Füge eine Reihe hinzu mit den Werten count_nr = 0 und count_id = 1 .

Der Counter-Code
session_start(); 
include 'includes/dbconnect.inc.php'; 
if (!session_is_registered("counted")){ 
    mysql_query("UPDATE simplecount SET count_nr=(count_nr + 1) WHERE count_id=1"); 
session_register("counted"); 
}

session_start();
Startet die Session (mehr zu Sessions: http://www.php.net/manual/de/ref.session.php).
include 'includes/dbconnect.inc.php'; 
Um eine Verbindung mit der Datenbank auf zu bauen, benutze ich ein File worin ich die richtigen Daten habe, was man mit Code-Teile die man häufig braucht immer machen sollte. Mehr zu Datenbankverbindungen auf:

http://www.php.net/manual/de/function.mysql-connect.php,
http://www.php.net/manual/de/function.mysql-select-db.php
if (!session_is_registered("counted")){
Hier sehen wir nach ob der Besucher schon gezählt wurde. Wenn dies nicht der Fall ist, werden wir ihn zählen und eine Session zuweisen, sodass wenn er die Seite neu lädt während sein Besuch noch dauert, sodass er nicht erneut gezählt wird.
mysql_query("UPDATE simplecount SET count_nr=(count_nr + 1) WHERE
count_id=1");
Mit der Funktion UPDATE wird der Wert Count_nr (Besucherzähler) erhöht, wenn kein Session registriert ist. Count_id muss immer den Wert 1 haben, um so sicher su sein, dass ein Besucher nicht doppelt gezählt wird.
session_register("counted"); 
}
Wenn der neue Besucher gezählt wurde, wird er registriert in einer Session.


snowflake83
Rookie
Beitrag vom:
24-06-2005, 09:00:15

ist sehr interessant. habe selbst ein solchen counter programmiert. nur hatte ich das problem, wen der USER die COOKIES deaktiviert hatte, das der user doppelt gezählt wird

-----------------------------------------------------


dreamer
Expert
Beitrag vom:
03-01-2004, 23:56:34

Ich habe hier die Sessions immer den gleichen Namen gegeben, nur um nach zu gehen ob der User neu ist. Allerdings kann man es auch so machen, dass die Sessions keinen Namen bekommen und so kann man also detailliert nachgehen was jeder einzelne User so alles auf eure Webseite anstellt.

-----------------------------------------------------


maggifex
Junior-Member
Beitrag vom:
01-01-2004, 23:35:17

Interessant...

Der PHP counter sieht recht interessant aus. Ich habe das bisher immer mit einfachen textdateien gemacht...

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06245
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1150
Comments: 0