Möchte herausfinden ob sich ein Benutzer angemeldet hat oder nicht. Wenn sich wer anmeldet, dann schreibe ich eine variable in die datenbank, damit von nirgends wo anders aus dieser Benutzer angemeldet werden kann. Jedoch kriege ich dabei ein Problem, wenn der Benutzer das Fenster einfach schließt statt sich ordnungsgemäß abzumelden. ich möchte aber in jedem Fall die Variable zurücksetzen wenn das fenster geschlossen wird. Wäre dankbar für jeden Tipp.
emi schrieb: > ich möchte aber in > jedem Fall die Variable zurücksetzen wenn das fenster geschlossen wird. Eine zuverlässige Erkennung ist nicht möglich, denk z.B. an Stromausfall. Du kannst es so machen: Wenn innerhalb von X Minuten keine Aktion erfolgt→Variable löschen.
T.roll schrieb: > Du kannst es so machen: Wenn innerhalb von X Minuten keine Aktion > erfolgt→Variable löschen. das muss aber dann irgendwie in myphpadmin eingestellt werden oder? Nagut, ich schau mal wo das ist. Danke zunächst mal!
Naja problematisch ist das aber auch. Denn wenn eine bestimmte Zeit vergangen ist, dann wird vielleicht die mysql variable gelöscht, jedoch könnte die session noch existieren. Und da ich meine seite so gebaut habe, dass immer nur die session kontrolliert wird damit der benutzer seinen account verwenden kann, wird bei auslaufen der Zeit zwar die variable in mysql gelöscht (wenn es auch wirklich so funktioniert) aber der benutzer kann immer noch seinen account verwenden, da er ja noch seine Session hat. Das heißt der Nachteil bei dieser Methode ist, dass ich bei JEDER Seite die Benutzerrechte erfordet, ich in die Datenbank hineinschauen muss um herauszufinden ob dieser noch engemeldet ist und nicht mehr mit Sessions arbeite.
Hey also hätte eine Vorschlag warum nimmst du nicht die IP Adresse oder andere Sachen die sich während des Besuch nicht ändern. Z.b. Browser Version usw. Es gibt so viele Möglichkeiten jemanden zu tracken! Die großen Firmen wie Google und Co schaffen es auch ohne session dich im Auge zu behalten. Gruß Richi
emi schrieb: > Das heißt der Nachteil bei dieser Methode ist, dass ich bei JEDER Seite > die Benutzerrechte erfordet, ich in die Datenbank hineinschauen muss um > herauszufinden ob dieser noch engemeldet ist und nicht mehr mit Sessions > arbeite. Ja und, wo ist das Problem an einem kleinen SELECT?
PHP ist leider nicht wirklich mehr zeitgemäß für eine Webapplikation. In anderen Sprachen (Java, .net) Läuft auf dem Server wirklich eine Anwendung, dort kann man auch sich Events für Beginn und Ende einer Session geben lassen. Zusätzlich kann man recht einfach globale Daten cachen und mit Threads arbeiten. Dazu noch die Vorteile der Typsicherheit. Damit ist es dort z.b. überhaupt kein Problem zu ermitteln wie viele User angemeldet sind, ohne die Datenbank zu befragen.
Peter II schrieb: > PHP ist leider nicht wirklich mehr zeitgemäß für eine Webapplikation. Heißt das die meisten Webanwendungen werden heutzutage nicht mehr in php geschrieben?
emi schrieb: > Heißt das die meisten Webanwendungen werden heutzutage nicht mehr in php > geschrieben? Wenn ich die Wahl habe würde ich es zumindest nicht mehr machen. Es kommt natürlich auf dem Umfeld an. Bei Business Anwendungen wird wohl Java führend sein. Da die meisten Provider nur PHP anbieten, hat man aber nicht immer die Wahl.
Peter II schrieb: > PHP ist leider nicht wirklich mehr zeitgemäß für eine Webapplikation "reines" php, wie auch nodejs, ruby, java, beans etc. sind ohne WebApplicationFrameworks nicht mehr zeitgemäß..da hast du recht... @TO wenn du wirklich was seriöses entwickeln willst schau dir mal zB ZendFramework an... alles neu von hand zu basteln ist keine option...nur zum spielen&lernen ist es aber ok solange es nicht wirklich produktiv genutzt werden soll..
Andi ... schrieb: > Peter II schrieb: >> PHP ist leider nicht wirklich mehr zeitgemäß für eine Webapplikation > > "reines" php, wie auch nodejs, ruby, java, beans etc. sind ohne > WebApplicationFrameworks nicht mehr zeitgemäß..da hast du recht... auch mit WebFramework wird PHP nicht wirklich besser. - keine Typsicherheit - keine Threads - keine globalen Variablen für die WebApplication. http://blog.benny-baumann.de/?p=334 Zum testen und spielen ist php OK, aber eine richtig Anwendung würde ich damit nicht machen. ( Ich habe PHP auch für kleine dinge im Einsatz. )
Also ich bastle gerade ein Forum und ich habe so ziemlich alles schon mit php gemacht und keine Probleme damit. Es läuft alles wie gewollt (außer die ganze Stringbearbeitung fehlt mir noch...) Peter II schrieb: > - keine Typsicherheit Ok, das ist wirklich schlecht. Peter II schrieb: > keine Threads Wüsste nicht wozu man sie brauchen könnte... Peter II schrieb: > keine globalen Variablen für die WebApplication. Wüsste nicht wieso das schlimm sein sollte...
emi schrieb: > Peter II schrieb: >> keine globalen Variablen für die WebApplication. > Wüsste nicht wieso das schlimm sein sollte... Es ist nicht schlimm, es schränkt nur ein. Verwendung z.b. zum cachen von Daten. > Peter II schrieb: > > keine Threads > Wüsste nicht wozu man sie brauchen könnte... im Asynchron z.b. pdf zu erzeugen oder Images im Format zu ändern.
Peter II schrieb: >> > keine Threads >> Wüsste nicht wozu man sie brauchen könnte... > im Asynchron z.b. pdf zu erzeugen oder Images im Format zu ändern. Und wofür braucht man jetzt Threads?
--- schrieb: > Ja und, wo ist das Problem an einem kleinen SELECT? 1.) Verbindung aufbauen 2.) ABfrage machen 3.) Ergebnis herauslesen 4.) Verbindung schließen Das geht mit if(isset($_SESSION['...'])) einfacher zum Abfragen, ist aber unsicherer. Werde aber ab jetzt immer beide abfragen. Das einzige Problem ist wenn ich das Fenster schließe. Dann bleibt nämlich der Wert in der Datenbank auf eingeloggt und ich komme nicht mehr hinein wenn ich mich wieder einlogge weil ich genau das überprüfe. Dafür gibt es nehme ich an keine schöne Lösung...
Michael schrieb: > Peter II schrieb: >>> > keine Threads >>> Wüsste nicht wozu man sie brauchen könnte... >> im Asynchron z.b. pdf zu erzeugen oder Images im Format zu ändern. > > Und wofür braucht man jetzt Threads? wenn der Anwender ein Bild hoch lädt, wo die Bearbeitung länger dauert. Dann kann man das in einem extra Thread im Hintergrund erledigen und kann den Request sofort beantworten. PHP blockiert ja die komplette Session von einen Nutzer. Damit kann der Browser nicht mal 2 Images gleichzeitig vom PHP abfragen wenn dafür die Session gebraucht wird.
Peter II schrieb: > PHP blockiert ja die komplette Session von einen Nutzer Kann man umgehen, wenn man statt $_SESSION was eigenes verwendet (Memcached, redis, ...) Macht aber überhaupt keinen Spaß, das bei jedem CMS u.Ä. von neuem reinzupatchen, nur um damit bei jedem Update neuen Ärger zu haben...
Entschuldigt das aufwärmen. Aber ich erinnere mich das ein bekannter mal ein ähnliches problem hatte. Dabei war die lösung ein bisschen javacode der das schließen der seite registrierte und dann im hintergrund einfach eine art "Abmeldungsscript" aufgerufen hatte das mit den informationen zum user gefüttert wurde. (GET also alá http://testlink.de/abmelden.php?u=username&sid=*********) In diesem script wurde die session mit session_destroy dann "Zerstört" und seine datenbankvariablen gelöscht. Nur so eine idee vielleicht hilft sie dir ja.
cbtester schrieb: > javacode Google.de → Unterschied Java Javscript Diese Scriptspielerein sind durchaus möglich, lösen aber sein Problem nicht, da er das Verlassen des Benutzers in jedem Fall erkennen will. Ich zitier mich jetzt einfach nochmal: T.roll schrieb: > Eine zuverlässige Erkennung ist nicht möglich, denk z.B. an > Stromausfall.
cbtester schrieb: > javacode Google.de → Unterschied Java Javascript Diese Scriptspielerein sind durchaus möglich, lösen aber sein Problem nicht, da er das Verlassen des Benutzers in jedem Fall erkennen will. Ich zitier mich jetzt einfach nochmal: T.roll schrieb: > Eine zuverlässige Erkennung ist nicht möglich, denk z.B. an > Stromausfall.
T.roll schrieb: > Google.de → Unterschied Java Javascript Ja ja... Ich hab dich auch lieb ;-*
1 | <script type="text/javascript"> |
2 | window.onbeforeunload = function () { |
3 | return "Wollen sie wirklich schon gehen?"; }; </script> |
Statt des return das "Abmeldescript" aufrufen. Hier noch etwas mit Ausführlicherem code: http://www.java-forum.org/allgemeines-ee/48689-schliessen-browserfensters-tabs-erkennen.html @T.roll Javascript, Ajax, Jquery und der ganze andere kram ist sich (bis auf die Ausnahme Java da dies ja durch einen compiler gejagt wird) so ähnlich das ich echt lachen muss das um 4 minuten nach 12 noch einer erbsen zählt! Leg nicht jedes wort auf die goldwage! Speziell wenn sich der tag gen ende neigt!
Wieso sollte das nicht helfen ? (Ok stromausfall deckt das script nicht ab) Aber das versehendliche oder absichtliche schließen der seite schon. Manchmal ist es halt einfach nicht möglich alles zu erfassen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.