php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.07.2006, 10:38  
Benutzer
 
Registriert seit: 02.06.2006
Beiträge: 53
TailerD
Standard Session beenden wenn nach ...min Browser inaktiv

Aus einen anderen Thread hab ich eine guten Tip bekommen in Bezug auf die Intervall Function. Danke ignatz.
http://www.phpfriend.de/forum/ftopic58699.html

Meine Problem:
Ich hab mir gedacht der User der sich erfolgreich eingeloggt hat, soll nach 5 min ohne Browser aufruf und dann erneutem Aufruf automatisch ausgeloggt werden.

Das Problem ist nur das sich der Timestamp ja auch aktuallisiert und ich nicht s zum Prüfen hab. Könntet ihr mir da helfen? so mit som Denkanstoss. Das ist alles verwirrend.

PHP-Code:

function intervallmin($sek) {
     
$i sprintf('%d Tag%s, %d Stunde%s, %d Minute%s und %d Sekunde%s'$sek 86400,
            
floor($Tage=$sek 86400) != ' <-Tage':''$sek 3600 24,
            
floor($Stunden=$sek 3600 24) != '<-Stunden':''$sek 60 60,
            
floor($Minuten=$sek 60 60) != '<-Minuten':''$sek 60,
            
floor($Sekunden=$sek 60) != '<-Sekunden':''
             
);
         
$_SESSION['Sekunden']=$Sekunden;
         
$_SESSION['Minuten']=$Minuten;
         
$_SESSION['Stunden']=$Stunden;
         
$_SESSION['Tage']=$Tage;
    return 
$i;
}

// aktueller Timestamp
$_SESSION['timeAktuell']=time($_SESSION['timeAktuell']);

// minuten 
 
intervallmin($_SESSION['timeAktuell']);

$timeout=3;       // Zeitraum festlegen
$timeoutstop=5;  // nach dem Zeitraum Benden


$timeoutsum=$_SESSION['Minuten']; // aktuelle Zeit bei Session vergabe
print "aktuelle Zeit bei Session vergabe ".$timeoutsum."
"
;
$summe=$_SESSION['Minuten']+$timeout// aktuelle Zeit plus Zeitraum in dem kein neuer Timestamp
print "aktuelle Zeit plus Zeitraum".$summe."
"
;

$differenz=$summe-$timeoutsum;  // timeoutstop ermitteln
print " erlaubter Zeitraum ermitteln ".$differenz."
"
;
print 
" Session stop ermitteln ".$timeoutstop."
"
;

if(
$_SESSION['Minuten']!=$summe ){
    print 
"Session wird beendet nach".$timeoutstop ;

}else{
    print 
"Session ist aktiv nach" .$differenz;

Danke auf jeden Fall schon mal vorab.
TailerD ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.07.2006, 10:46  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Wie wäre es, wenn du erst überprüfst, wie alt der Wert in der Session ist und den Timestamp gegebenenfalls erst anschließend aktualisierst?
xabbuh ist offline  
Alt 07.07.2006, 13:14  
Benutzer
 
Registriert seit: 02.06.2006
Beiträge: 53
TailerD
Standard

Zitat:
Zitat von xabbuh
Wie wäre es, wenn du erst überprüfst, wie alt der Wert in der Session ist und den Timestamp gegebenenfalls erst anschließend aktualisierst?
Ich muss noch mal fragen.

Wie soll ich denn den Wert überprüfen wenn der immer mit aktualisiert wird?
Wie kriege ich einen festen Wert in die Session den ich dann überprüfen kann?

Meinst du ich soll 2 Intervall funktionen machen und dann die Minuten vergleichen?
Aber das Intervall aktualisiert doch immer den Timestamp.
TailerD ist offline  
Alt 07.07.2006, 13:19  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von TailerD
Ich muss noch mal fragen.

Wie soll ich denn den Wert überprüfen wenn der immer mit aktualisiert wird?
Der Wert in der Session aktualisiert sich nicht von selbst, sondern wird von deinem Script angepasst. Die Überprüfung muss in deinem Script also erfolgen, bevor du einen neuen Wert in der Session ablegst.
xabbuh ist offline  
Alt 07.07.2006, 13:32  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von TailerD
Wie soll ich denn den Wert überprüfen wenn der immer mit aktualisiert wird?
Wie kriege ich einen festen Wert in die Session den ich dann überprüfen kann?
Mit einer ganz simplen Zuweisung.

PHP-Code:
session_start();
$verfallszeit 300# 5 * 60
$neu time();
if (! isset(
$_SESSION['letzter_kontakt']))
  
$_SESSION['letzter_kontakt'] = $neu;

if (
$neu $_SESSION['letzter_kontakt'] > $verfallszeit)
{
# rausschmeißen, erschießen, vierteilen... 
# Session Daten löschen
   
$_SESSION = array();
# Keks nicht vergessen
if (isset($_COOKIE[session_name()])) {
    
setcookie(session_name(), ''time()-42000'/');
# Löschen der Session
   
session_destroy();
   
header('Location: http://' $_SERVER['SERVER_NAME'] . '/startscript.php'); # oder die Loginseite
   
exit;
}

#Wer hier noch da ist, ist entweder neu oder hat weniger als 5' getrödelt
$_SESSION['letzter_kontakt'] = $neu;
# weiter im Script 
 
Alt 07.07.2006, 14:49  
Benutzer
 
Registriert seit: 02.06.2006
Beiträge: 53
TailerD
Standard

Also jetzt bin ich baff. Ich weis garnicht mehr was ich sagen soll. Ich hab auch noch mal zum Verständnis im php_manual_de.chm gelesen.

Ich wollte ein Intervall abfragen, das ja schon da ist und was ich ja auch wusste. Die Minutenabfrage wäre garnicht nötig gewesen und hat die Sache nur verkompliziert.

Einfach nur geil. Danke. Danke. Ein grosses Lob an die tatkräftige Unterstüzung.
TailerD 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
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Session beenden andrew22 PHP Tipps 2008 4 08.02.2008 01:54
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
Session Logout Login Navigation TailerD PHP Tipps 2006 10 24.06.2006 17:12
session nach 15 Minuten automatisch beenden ckrentel PHP Tipps 2006 8 04.03.2006 12:22
Session mit Browser schließen Calli PHP Tipps 2006 9 13.01.2006 18:59
session nach 15 Minuten automatisch beenden ckrentel PHP-Fortgeschrittene 17 12.12.2005 14:57
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
session beenden mit session_set_cookie_params() aber wie?? ckrentel PHP Tipps 2005 19 20.03.2005 14:13
[Erledigt] session beenden und eingabefeld pruefen PHP Tipps 2005 2 10.02.2005 20:20
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
CURL-Seitenimport: Session an Browser übergeben... PHP-Fortgeschrittene 0 14.10.2004 20:39
Beenden einer Session Beatbox PHP Tipps 2004 1 11.09.2004 11:26
Cookies, PHP und Browser - Neues Fenster neue Session RcRaCk2k PHP-Fortgeschrittene 2 22.06.2004 08:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
session stoppen, php session inaktivität, session bei inaktivität beenden, php session nach inaktivität löschen, session nach inaktivität löschen, php session inaktiv, php session stop, http://www.php.de/php-tipps-2006/41095-session-beenden-wenn-nach-min-browser-inaktiv.html, session stop, php session stoppen, php session bei inaktivität beenden, session inaktiv, browser session beenden, php session verfallszeit, session timeout php inaktiv, session inaktivität beenden, $_session beenden, browser session löschen, session browser schließen, session beenden php bei nichts tun

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:09 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.