Deutschsprachiges NOF - Forum

Support und Tutorials rund um das Thema NetObjects Fusion

collapse

* Wichtige Mitglieder-Information

Da immer noch Mails verwunderter "Mitglieder" bei mir ankommen, weil Login und Registrierung nicht funktionieren... das Forum ist seit geraumer Zeit geschlossen und steht ausschließlich als Nachschlagewerk zur Verfügung. Einerseits bin ich froh, diesen Schritt gewagt zu haben... auf der anderen Seite... wenn ich hier manchmal so lese... es war doch "'ne geile Zeit" mit euch! Macht's gut!

Beste Grüße nettesekel

* Friendship

DER Katzenblog – mit tollen Tipps und Ideen für deine Katze(n) <3

Die letzten Beiträge

Autor Thema: Benutzer online  (Gelesen 2583 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline handballass

  • Neuling
  • *
  • Beiträge: 6
Benutzer online
« am: 13. Februar 2015, 17:49:49 »
Hallo Wissende,

nach langer Zeit habe ich mal wieder eine Frage an Euch. Für eine neue Internetpräsenz würde ich gerne einen Counter hinterlegen. Den Ihr auf Eurer Seite habt würde schon reichen. (Besucher online = Nutzername). Habt Ihr hier Vorschläge oder ggf einen Skript!? nach Möglichkeit mit oder ohne MySQL.

Meine Seite habe ich mit NOF12 angefertigt und ich möchte natürlich gerne wissen wer gerade angemeldet bzw. online ist.

anbei mal ein Link   www.diamantlabor.com/BSG-Golf/

Gruß
handballass (whew)

Offline nettesekel

  • Administrator
  • *****
  • Beiträge: 8181
Re: Benutzer online
« Antwort #1 am: 13. Februar 2015, 17:55:33 »
Keine Ahnung, wie du das mit NOF realisieren willst. Hier erledigt das die Forensoftware, welche natürlich sehr komplex ist, Benutzer-Datenbank etc...

Offline Dada

  • Supporter
  • *****
  • Beiträge: 1631
Re: Benutzer online
« Antwort #2 am: 13. Februar 2015, 19:03:19 »
Da wird man wohl was mit PHP und einer DB machen müssen. Wobei wenn es nicht viele Nutzer sind auch eine XML-Datei.

Evtl. kann HansK. was dazu sagen.

Mein Gedanke.
-Login der sicheren Seite mit Zeitstempel in XML Datei speichern
- Das Script liest die XML aus. Nutzt aber nur die letzen 30min.
- Logt sich ein Nutzer wieder ein wird sein Zeitstempel in der XML überschrieben.

Offline nettesekel

  • Administrator
  • *****
  • Beiträge: 8181
Re: Benutzer online
« Antwort #3 am: 13. Februar 2015, 20:18:21 »
Man sollte für so anspruchsvolle Lösungen vielleicht einfach eine entsprechende Software nutzen. Eine solche Einzelösung für NOF zu basteln, da steht der Nutzen m.E. nicht in Relation zum Aufwand, denn im Endeffekt ist das ja nichts wirklich Notwendiges, sondern einfach nur eine "Spielerei".

Hans K.

  • Gast
Re: Benutzer online
« Antwort #4 am: 13. Februar 2015, 20:54:38 »
Die Seiten sind alle nur für Mitglieder erreichbar und für das "gemeine Volk" nicht zugängig. Von daher erschließt sich mir der Sinn gerade nicht so ganz...

...und bevor jetzt kommt: "Na damit die Mitglieder sehen können wer so da ist...", dann würde ich hingehen und ein einfaches Forum installieren. Dann können sich die Mitglieder sogar untereinander austauschen. ;-)
Da gibt es reichlich kostenfreie Forensoftware und Dein Wunsch ist ebenfalls erfüllt. :D

Grundsätzlich ist es natürlich möglich, die Frage ist wirklich - übersteigt der Aufwand hier nicht den Nutzen?
Aufsatz ist wie Dada schon schrieb das Einloggen in die sichere Seite. Ab dort kann man sicherlich zwei Wege gehen.
1. Über eben einen Zeitstempel und Eintrag in eine Datenbank/Datei.
2. Eventuell kann man das auch mit PHP-Sessions lösen.


Offline Dada

  • Supporter
  • *****
  • Beiträge: 1631
Re: Benutzer online
« Antwort #5 am: 14. Februar 2015, 09:00:56 »
3. Möglichkeit die Sessionvariable der sicheren Seite an an einen Chat weitergeben.
Ist halt auch wieder mit Arbeit verbunden und ob es sich lohnt ist fraglich.

Offline groecamp

  • Neuling
  • *
  • Beiträge: 11
Re: Benutzer online
« Antwort #6 am: 14. Februar 2015, 13:54:05 »
Ich möchte da mal kurz meine Anmerkungen machen, ohne eine fertige Lösung anzubieten.
Zitat
ich möchte natürlich gerne wissen wer gerade angemeldet bzw. online ist.
das sind zum einen 2 verschiedene Sachen.
1. Wer gerade "Online" ist, wirst du nie rausfinden. Du kannst feststellen welche IP-Adresse auf deiner Seite ist. Das speichern der Ip-Adresse ist aber nicht erlaubt, wenn kein Hinweis vorhanden ist.
2. Wer gerade "angemeldet" ist, das ist kein Problem.

Und diese Aussagen sind aber auch insofern falsch, dass du mit den einfachen Mittel wie php und Datenbank nicht machen kannst. Du kannst nicht den momentanen Zustand feststellen.

Lassen wir mal den Zustand "Online" ausser Betracht.
Also ein User meldet sich an(normalerweise da folgendes überprüft:
-> Gültigkeit der Eingabe, Überprüfung auf schädliche Zeichen;
-> Überprüfung ob Username und Password übereinstimmen
-> Überprüfen ob User bereits angemeldet ist (wird oft vernachlässigt, ist aber sehr wichtig)
und bei erfolgreicher Überprüfung wird der User eingeloggt, d.h. in einer Datenbank wird z.b. in der tabelle t_login ein Eintrag gemacht wie:
userID = 2
loginDate = 1231231213 (in Form eines Timestamp)
logoutDate = 0
und sinnvoll ware dann auch noch eine $_SESSION['login']=1 setzen. Mit dieser Session-Variable kannst du am Anfang bei jeder Seite im Login-Breich dann abfragen ob der User eingeloggt ist, und ob er dann überhaupt die Seite anschauen darf. Diese Abfrage ist wichtig, da sonst der User über die direkte Seiteneingabe in der URL auch ohne Anmeldung kommen würde. Aber das nur am Rande.

Also hast du jetzt eine Datenbank, die dir alle eingeloggten User anzeigt, und die kannst du wie gewünscht mit einer DB-Abfrage wie "Select userID from t_login where logoutDate = 0" dieses anzeigen. Meldet sich der User ab mit einem Button, dann wird in seinem Eintrag in t_login logoutDate mit dem Timestamp versehen, somit ist er nicht mehr 0 und wird auch dann bei der Abfrage nicht mehr angezeigt. Man könnte auch den Eintrag löschen, somit würde aber die Select-Abfrage dann anders aussehen. Ist Ansichtssache. Ich speichere sie lieber.

Soweit ist das eine einfache Sache und relative schnell gemacht.

Aber leider gibt es ein großes Problem, oder besser gesagt 2 Probleme.
1. Der User loggt sich ein, und geht dann Kaffee trinken oder sowas. Die Sessions warden vom Server nach einer bestimmten Zeit (je nach Einstellung so ca. 20 Min) wenn keine Tätigkeit mehr zu verzeichnen ist vom Apache-Server gelöscht. Kommt der User wieder, und er klickt munter in dem Login-Bereich rum, dann weiß der Server überhaupt nicht mehr was Sache ist. Deshalb ist die o.g. Variable wichtig und sollte immer abgefragt werden also ist  $_SESSION['login'] vorhanden und ist  $_SESSION['login']=1, dann darfst du weitermachen, wenn nicht gehe auf die Seite z.B. "Warnung" mit dem Hinweis "Ihre Sitzung ist abgelaufen melden sie sich erneut an...." Diese Meldung kennt doch jeder. Also muss er sich neu anmelden und die DB wird dementsprechend aktualisiert. Wenn es so läuft ist es kein Problem. Wenn er sich aber nicht mehr sofort anmeldet, dann wird er in der Liste t_login angezeigt.
2. Der User schließt einfach die Seite, also haben wir das gleiche Problem. Die Datenbank erfährt nie, dass er weg ist.

Zusammenfassend kann man also sagen, dass diese Anzeige nur funktoniert, wenn der User sich ordentlich abmeldet, und das ist so meine Erfahrung sehr selten der Fall. Also wirst du das mit PHP und DB nicht lösen können, weil der Server im Normalfall nur auf Aktion vom Client reagiert, und wenn von diesem nichts kommt, dann passiert auch nichts.

Offline nettesekel

  • Administrator
  • *****
  • Beiträge: 8181
Re: Benutzer online
« Antwort #7 am: 14. Februar 2015, 14:26:16 »
Dazu kommt, dass die NOF-Kompos und darunter auch die sichere Seite mit jeder neueren PHP-Version ein bisschen mehr Mucken macht. Ich halte es für keinen Zufall und SwissKnife ebenso wenig, dass in letzter Zeit vermehrt diese 600er Fehler in Zusammenhang mit NOF-Kompos auftauchen.
Da programmiert man dann mit viel Aufwand irgendeine halbherzige Geschichte um sie dann gemeinsam mit der Kompo zeitnah einzustampfen.
Warum also das Rad immer wieder neu erfinden? Es gibt genug Lösungen auf dem Markt, die speziell für so Wünsche Programmiert wurden.
« Letzte Änderung: 14. Februar 2015, 14:34:53 von nettesekel »

Offline handballass

  • Neuling
  • *
  • Beiträge: 6
Re: Benutzer online
« Antwort #8 am: 23. Februar 2015, 13:05:27 »
Sorry, lomme erst jetzt dazu mich zu bedanken. Werde das Thema doch nach hinten schieben. Ist ja nicht Prio 1. Danke nochmals an alle die das Thema beantwortet haben.

Gruß
handballass  :-D :-D :-D

Deutschsprachiges NOF - Forum

Support und Tutorials rund um das Thema NetObjects Fusion