Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Sessions zählen - sessions.module

Eingetragen von Q-Base (339)
am 13.11.2006 - 00:38 Uhr in
  • Module

Hallo,

ich bekam heute den Wunsch auf deb Tisch, dass es einen Benutzerzähler gibt. Ich wollte dabei einfach die Sessions zählen. Dabei weiß ich aber jetzt nicht, ob die Sessions in der {sessions}-Tabelle bleiben.

Dazu hätte ich eigentlich gehofft, dass es eine Spalte gibt, die 'auto_increment' ist. Wenn die Sessions aber in der Tabelle bleiben, wäre das nicht eine mögliche Lücke, denn immerhin ist eine Session mit einer UID verbunden. Errät man die Session, hat man bestimmte Rechte. Wäre also klüger die Session-Tabelle ab-und-zu per Cron oder so, alte Sessions zu löschen.

Wie kann ich nun aber meine Session in einem Block zählen?

Ciao, Q

‹ Gästebuch-Modul für Drupal 5 (Beta) Image ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Was soll der

Eingetragen von sanduhrs (1274)
am 13.11.2006 - 10:38 Uhr

Was soll der "Benutzerzähler" zählen?
Wie lange die Sessions in der Tabelle verbleiben, hängt von Deinen Einstellungen [1] ab.

vg

[1] http://php.net/session

--
sanduhrs - drupalcenter
--------------------------------
http://erdfisch.de

--
sanduhrs · Stefan Auditor · Drupalcenter
http://erdfisch.de · http://drupal.org/user/28074 · http://association.drupal.org/user/646

  • Anmelden oder Registrieren um Kommentare zu schreiben

Er soll die Zahl der

Eingetragen von Q-Base (339)
am 13.11.2006 - 10:43 Uhr

Er soll die Zahl der Benutzer zählen, die auf der Seite waren. "Seit Christi Geburt waren 512 User auf gott.com".

Die Session bleibt drei Tage aktiv, also habe ich nur die Anzahl der Leute innerhalb von drei Tagen, wenn ich ein Count auf der Session-Tabelle mache. Brauche ich also eine andere Methode.

Lösungsansatz.
Eine Variable?! variable_get() und variable_set() und dann nur schauen, ob die aktuelle Session in der Tabelle der Sessions vorhanden ist, wenn nicht den Zähler um eines erhöhen.

Was hältst du davon?
---
Drupal v4.7.3 + Nachbesserungen

Ciao, Q
---
Running Gag der IT seit den 70er: "Machen wir eben mal schnell ...".

  • Anmelden oder Registrieren um Kommentare zu schreiben

na wenn

Eingetragen von Q-Base (339)
am 13.11.2006 - 11:12 Uhr

Na wenn ich schonmal dabei bin, dann kann ich auch gleich mal fragen: wie habt ihr denn da unten links eure kleine Statistik hinbekommen? Es liegt mir nämlich auch noch auf dem Tisch, die Leute mit den meisten Beiträgen aufzulisten. Ich habe damit noch nicht angefangen, weil man ja sowohl Kommentare, als auch Nodes schreiben kann.

Habt ihr das dann nur addiert oder wie habt ihr das gemacht?
---
Drupal v4.7.3 + Nachbesserungen

Ciao, Q
---
Running Gag der IT seit den 70er: "Machen wir eben mal schnell ...".

  • Anmelden oder Registrieren um Kommentare zu schreiben

Quote:Die Session bleibt

Eingetragen von sanduhrs (1274)
am 13.11.2006 - 11:20 Uhr
Zitat:

Die Session bleibt drei Tage aktiv, also habe ich nur die Anzahl der Leute innerhalb von drei Tagen, wenn ich ein Count auf der Session-Tabelle mache.

Nein, Du hast die Anzahl der Sessions der letzten drei Tage ;)
Jeder Benutzer, der unangemeldet auf Deine Seite kommt und sich kurz danach anmeldet, wird doppelt gezählt, da bei Anmeldung eine neue Session gestartet wird.

Wenn Du genauere Werte willst - oder ist das egal? - musst Du auch die IP beachten und ob der Benutzer einen Account hat oder nicht. Gleiche IPs bei dürfen bei Sessionwechsel z.B. nicht gezählt werden. Benutzer mit Accounts dürfen nicht gezählt werden.

Und da kann man sich sicherlich noch mehr ausdenken, um die Werte genauer zu ermitteln.

vg

--
sanduhrs - drupalcenter
--------------------------------
http://erdfisch.de

--
sanduhrs · Stefan Auditor · Drupalcenter
http://erdfisch.de · http://drupal.org/user/28074 · http://association.drupal.org/user/646

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe euch ja ganz

Eingetragen von Q-Base (339)
am 28.11.2006 - 09:30 Uhr

Ich habe euch ja ganz vergessen, meine Lösung zu posten. Das möchte ich hiermit nachholen.

Noch ein Vorwort.
Weil ich nicht weiß, wie man ein Objekt in PHP erzeugt, habe ich einfach zwei Felder benutzt. Das wäre noch Optimierungspotential.

<?php
global $user;

$valid_until = time() + (3600*24*3); // drei Tage

// Keys für die Tablle
$counter_int_key  = "session_counter_int";
$counter_data_key = "session_counter_sessions";

// gespeicherte Daten
$counter_int_data = variable_get($counter_int_key, 0);
$counter_data_arr = variable_get($counter_data_key, array());

// Wenn die Session-ID nicht in dem Array 'session_counter_sessions' enthalten ist, wird
// der Counter inkrementiert und die Session in das Array aufgenommen
//  außerdem wird der IP-Range von Google ausgeschlossen
if ( ! array_key_exists($user->sid, $counter_data_arr) && ! preg_match("/66\.249\.66.*/i", $user->hostname) ) {
 
$counter_int_data++;
}
// gespeicherte Zeit aktualisieren
$counter_data_arr[$user->sid] = $valid_until;

// alte Daten wegschmeißen
if (is_array($counter_data_arr)) {
// die Funktion "is_expired_nord" prüft, ob die gespeicherte Zeit kleiner ist als aktuelle Zeit
 
$counter_data_arr = array_filter($counter_data_arr, "is_expired_nord");
}


variable_set($counter_int_key, $counter_int_data);
variable_set($counter_data_key, $counter_data_arr);
?>

Ciao, Q
---
Running Gag der IT seit den 70er: "Machen wir eben mal schnell ...".

  • Anmelden oder Registrieren um Kommentare zu schreiben

sess_count

Eingetragen von md (3717)
am 28.11.2006 - 10:31 Uhr

Schau dir mal diese Drupal Funktion an:
http://api.drupal.org/api/HEAD/function/sess_count

Müsste damit eigentlich einfacher gehen.

md - drupalcenter
--
http://drupal.mdwp.de

vg
md - DrupalCenter.de

mdwp* Drupal Consulting & Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

Öhm, ich zähle die

Eingetragen von Q-Base (339)
am 28.11.2006 - 11:36 Uhr

Öhm, ich zähle die Besucher. Da ich aber leider nur Sessions zählen kann, tue ich dies und behaupte, dass jeder Besucher nur eine Session hat. Sess_count zählt mir aber die aktiven Sessions, also Anzahl der Besucher aktuell.

Ciao, Q

Ciao, Q
---
Running Gag der IT seit den 70er: "Machen wir eben mal schnell ...".

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • DDEV: Website vom lokalen Server auf Webspace übertragen
  • MariaDB 10.6
  • Wie kann man die Ansicht der Benutzer erweitern?
  • (Gelöst) SIMPLE XML SITEMAP liefert die Sitemap für das Menü nicht aus
  • Entity Reference - Title Felder werden als Link angezeigt
  • PHP 8.1 - Deprecated function: rtrim()
  • Preloader / Spnner entfernen Menu Link Modal-Modul
  • Schriftgröße standard einstellen
  • Drupal Website gestalten
  • Tokens werden in Viev als Link angezeigt
  • [bug entdeckt & workaround gefunden] benutzerdefinierte Felder vom Userprofil tauchen ungefragt auch in den Forumtopics auf...
  • [gelöst] Mass contact Empfängerliste nach Taxonomy Term statt Rolle
Weiter

Neue Kommentare

  • Hallo Werner, super, vielen
    vor 11 Stunden 34 Minuten
  • Du mußt die Struktur
    vor 18 Stunden 20 Minuten
  • Ergebnis des upgrade
    vor 1 Tag 11 Stunden
  • Danke, funktioniert einwandfrei!
    vor 1 Tag 12 Stunden
  • Bei Drupal 7 war diese Seite
    vor 1 Tag 13 Stunden
  • Es ist ein Paragraph
    vor 2 Tagen 15 Stunden
  • Danke fürs Feedback. Gut dass
    vor 5 Tagen 8 Stunden
  • Patch angewandt
    vor 5 Tagen 11 Stunden
  • core_version_requirement: ^8
    vor 1 Woche 12 Stunden
  • core_version_requirement: ^8
    vor 1 Woche 12 Stunden

Statistik

Beiträge im Forum: 247875
Registrierte User: 19595

Neue User:

  • Davidsnins
  • kudes
  • Tkakah

» Alle User anzeigen

User nach Punkten sortiert:
wla9215
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 4 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association