php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.12.2007, 23:01  
Erfahrener Benutzer
 
Registriert seit: 04.12.2005
Beiträge: 286
PHP-Kenntnisse:
Fortgeschritten
snatch-ic
Standard Logoutzeit speichern

Hallo,
um in einem System zu überprüfen wann und wie lang ein User online gewesen ist führe ich darüber Protokoll.
Jetzt stehet ich aber vor dem Problem das ich nicht weis wie ich das mitloggen soll wenn ein User einfach nur das Browserfenster schließt und sich nicht über die Auslogfunktion ausloggt. Für das einloggen usw. nutze ich Sessions.
Gibt es da eine Möglichkeit wie ich trotzdem die Logout-Zeit loggen kann?

mfg
snatch
snatch-ic ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.12.2007, 23:49  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Nein! Ganz klar es geht definitiv nicht. Wenn der Browser geschlossen wird, oder abstürzt oder der PC ausgemacht wird, es wird nichts an den Server gesendet!

ABER du kannst so lösen dass du eben die Zeit vom letzten Klick verwendest als letzte Aktion. Dürfte dann schon dem recht nahe kommen was du willst.
Flor1an ist offline  
Alt 19.12.2007, 08:45  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RaZoR
Nein! Ganz klar es geht definitiv nicht. Wenn der Browser geschlossen wird, oder abstürzt oder der PC ausgemacht wird, es wird nichts an den Server gesendet!
Das stimmt nur bedingt. Wenn das Fenster oder der Browser geschlossen wird, wird noch das onunload-Event des <body>-Tags ausgeführt. Bei einem Systemabsturz weiss ich es nicht. Das kannst du natürlich nutzen, indem du in allen möglichen Startseiten das Tag z.B. so angibst:
Code:
<body onunload="window.open('logtime.php?start=2', '_blank')" onload="window.open('logtime.php?start=1', '_blank')">
, auf allen weiteren Seiten so:
Code:
<body onunload="window.open('logtime.php?start=2', '_blank')">
logtime.php könnte dann etwa so aussehen:
PHP-Code:
<?php
$file 
'logfile.txt';

if(isset(
$_GET['start'])){
    
$mod $_GET['start'];
    if(
$mod == 1){
        
$modus 'w';
        
$label "Start:";
    }
    else{
        
$modus 'a';
        
$label "Ende :";
    }
}
$fp fopen($file$modus);
$zeit date('H.i.s');
fputs($fpsprintf("%s %s\n"$label$zeit));
fclose($fp);
echo 
"<script type='text/javascript'>window.close()</script>";
?>
Natürlich müssen da noch weitere Infos rein. Nur so als Anregung. Statt über eine zusätzliche Seite könnt das Ganze auch in direkt JS abgehandelt werden. Oder....
Und das Problem, dass da ein Benutzer ohne auszulogen davonläuft, ist immer noch nicht gelöst, das müsste dann irgendwie über die Sessions abgehandelt werden.
__________________
Gruss
L
lazydog ist offline  
Alt 19.12.2007, 09:15  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

natürlich läuft bei einem systemabsturz oder browserabsturz nichts mit onunload. wie auch? das sind stop fehler...

anzumerken zu lazydogs post ist noch, dass Popups beim verlassen der seite illegal sind....
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline  
Alt 19.12.2007, 11:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

ich würde da auch eher einen xhr (xml http request) losschicken
Zergling-new ist offline  
Alt 19.12.2007, 11:49  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
dass Popups beim verlassen der seite illegal sind....
Wieso das denn? Auch wenn sich das Popup in einer Sekunde wieder selbst schließt?
cycap ist offline  
Alt 19.12.2007, 11:56  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von brian johnson
natürlich läuft bei einem systemabsturz oder browserabsturz nichts mit onunload. wie auch? das sind stop fehler...
Das ist nicht zwingend so, wenn ich den IE oder Firefox auf Windows gewaltsam abwürge, wir das noch ausgeführt. Auf Linux nicht.Scheint vom Abbruch-Signal abzuhängen. Aber verlassen kann man sich definitiv nicht darauf.
Und eine Systemabsturz will ich jetzt nicht probehalber produzieren.
Zitat:
Zitat von brian johnson
anzumerken zu lazydogs post ist noch, dass Popups beim verlassen der seite illegal sind....
Ich weiss zwar nicht warum das so sein soll. Aber Popups sind definitiv nicht die beste Version (Popup-Blocker, etc), war auch nur eine Anregung. Zergling's Idee mit http-Requests ist sicher besser.
__________________
Gruss
L
lazydog ist offline  
Alt 19.12.2007, 11:59  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Zusätzlich sollte aber auf jeden Fall zusätzlich der letzte Klick ausgewertet werden. Damit auch die User geloggt werden die nicht über so einen JS Request mit der Zeit geupdated werden.
Flor1an ist offline  
Alt 19.12.2007, 12:47  
Erfahrener Benutzer
 
Registriert seit: 04.12.2005
Beiträge: 286
PHP-Kenntnisse:
Fortgeschritten
snatch-ic
Standard

Ok, also wäre die Idee das ich das entweder sofort per Javascript mache oder einfach die letzte Aktion speicher und bei dem nächsten Login einfach noch ein Logout mit der letzten Aktionszeit davor schreibe sobalt kein Logout eingetragen wurde.
Was würdet ihr denn dann als die bessere Lösung ansehen?
snatch-ic ist offline  
Alt 19.12.2007, 14:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wenn Du ein Login benutzt, gibts doch sicher ohnehin eine Zeit, wann die Session abläuft. Die dann bei neuem Klick ge-updatet wird? Nimm doch diese Zeit schon mal als Intialdatum für Dein Logout.
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Audio-Recorder / Zugriff auf Mikrofon -> speichern agrajag JavaScript, Ajax und mehr 4 27.07.2008 17:19
Bild Komprimiert speichern Culutio PHP-Fortgeschrittene 15 18.02.2007 18:54
PDF per PHP - Problem bei "Ziel speichern unter..." freq.9 PHP Tipps 2006 7 18.08.2006 16:54
bild speichern PHP Tipps 2006 1 10.06.2006 13:42
[Erledigt] Speichern unter... geht nicht!!! PHP-Fortgeschrittene 8 09.02.2006 16:55
[Erledigt] Datensätze aus Datenbank speichern und zuweisen PHP Tipps 2005-2 6 11.09.2005 15:38
Bild (.jpg) mit Link auf Festplatte speichern PsychoEagle PHP Tipps 2005-2 11 16.06.2005 14:54
Bild nicht speichern faux PHP-Fortgeschrittene 10 22.05.2005 11:10
Bilder speichern statt anzeigen... PHP Tipps 2005 3 25.04.2005 15:22
XML speichern McWolle PHP-Fortgeschrittene 5 04.04.2005 19:38
[Erledigt] Emails speichern Datenbanken 1 08.02.2005 20:06
Mail inkl. all. Elementen speichern Beitragsarchiv 5 29.12.2004 13:21
Bild speichern das mit der GDLib erstellt wurde. Stefano PHP Tipps 2004 2 22.09.2004 11:53
Formular in Mysql Datenbank speichern Anuschka Datenbanken 1 15.08.2004 02:55
ID zurückgeben nacht speichern des Datensatzes? Datenbanken 3 13.08.2004 16:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
onunload php fwrite

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.