php.de
Alt 04.11.2008, 22:17  
Erfahrener Benutzer
 
Benutzerbild von nofear87
 
Registriert seit: 27.09.2008
Beiträge: 192
nofear87 befindet sich auf einem aufstrebenden Ast
Standard Session

Hey ihr Lieben,
wie lange ist denn normalerweise eine Session gültig?
Kann man irgendwie der Session eine Gültigkeit geben, oder mach ich das lieber, in dem ich eine Session-Variable: 'Zeit' anlege und diese prüfe!?

Will außerdem umsetzten, das wenn ich auf die Login.php komme die Session auf jeden Fall ungültig ist, mit 'session_destroy' klappt es nur leider nicht, da ich irgendwie danach keine neue Session mehr anlegen kann.

folgende Fehler:
Code:
Warning:  session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in C:\Programme\xampp\htdocs\testbereich\community\index.php on line 2

Warning:  session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Programme\xampp\htdocs\testbereich\community\index.php:2) in C:\Programme\xampp\htdocs\testbereich\community\login.php on line 2 
Hoffe ihr könnt mir den entscheidenden Tipp geben.
LG Robert
nofear87 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.11.2008, 09:10  
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

Die Session ist solange gültig wie der Browser den Cookie sendet. Wenn du das PHP-eigene Sessionmanagement nutzt (was du offensichtlich tust) dann kannst du in deinen PHP-Einstellungen sagen welche lifetime dein Cookie bekommen soll.

Ich weiss warum du die obigen Fehlermeldungen bekommst, aber ich weiss nicht was du mit deiner Idee überhaupt erreichen willst... erläutere das doch mal.
cycap ist offline  
Alt 05.11.2008, 09:28  
Erfahrener Benutzer
 
Benutzerbild von nofear87
 
Registriert seit: 27.09.2008
Beiträge: 192
nofear87 befindet sich auf einem aufstrebenden Ast
Standard

Ich möchte gerne, das man sobald man auf die Login Seite kommt sich immer wieder neu einloggen muss. Und dann bei korrektem Passwort und Usernamen, eine neues Session angelegt wird. MfG
nofear87 ist offline  
Alt 05.11.2008, 09:43  
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

Das heisst dein Login ist kein Affen-Formular? (Infos dazu in unserem Wiki)

Du hast einen Denkfehler: Ein User kann auch eine Session haben ohne eingeloggt zu sein. Das heisst du musst ja auch prüfen ob der User eingeloggt ist und nicht ob er eine Session hat.

Das bedeutet dein $_SESSION muss einen Key wie z.B. "logged_id" haben, dessen Wert, wenn der User eingeloggt ist, true ist.

Dein vorhaben mit dem automatischen Logout wenn du auf die Login.php kommst, könnte dann so aussehen:

PHP-Code:
session_start();
if(isset(
$_SESSION["logged_in"]) && $_SESSION["logged_in"]==true)
{
  
$_SESSION = array();

cycap ist offline  
Alt 05.11.2008, 09:53  
Erfahrener Benutzer
 
Benutzerbild von nofear87
 
Registriert seit: 27.09.2008
Beiträge: 192
nofear87 befindet sich auf einem aufstrebenden Ast
Standard

Also lege ich einfach beim Login noch eine Session login_id an, mit dem Wert true.
Wenn er dann wieder mal auf meine Login seite kommt und der Wert true ist führe ich das von dir aus.
Was genau macht:
PHP-Code:
$_SESSION = array(); 
denn, einfach die Session leeren!? und smit auch die login_id auf "false" setzten!?
nofear87 ist offline  
Alt 05.11.2008, 09:56  
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

"leeren" triffts wohl, auf false setzt du (genau genommen) aber nichts. Aber wenn dann eine andere Seite auf $_SESSION['login_id'] == true prüft, so schlägt die Prüfung natürlich genau so fehl als wenn false drin steht.
cycap ist offline  
Alt 05.11.2008, 10:13  
Erfahrener Benutzer
 
Benutzerbild von nofear87
 
Registriert seit: 27.09.2008
Beiträge: 192
nofear87 befindet sich auf einem aufstrebenden Ast
Standard

legt eine Session nicht schon von Haus aus eine ID an, kann ich die dann nicht benutzen!?
Könnte sie ja z.b. eine Datenbank schreiben und dann jedesmal abprüfen ob die id von mir ist, oder ist das schon zuviel des Guten!?
Mit login_id versuchst man sozusagen auszuschließen, das die Session von einer ganz anderen Seite gesetzt wurde...richtig? Ist es da nicht besser eine Variable "dasdbaksjdb" zu nehmen, um sicher zu sein, das die definitiv noch keine andere Seite gesetzt hat!?
Vielen Dank!
nofear87 ist offline  
Alt 05.11.2008, 10:23  
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

Wie gesagt, du musst beachten das eine Session im eigentlichen Sinne nichts mit dem Login zu tun hat. Eine Session ist ja nur die wieder-erkennung des Clients. Das heisst ja nicht das dieser Client sich jemals eingeloggt hat. Sobald du session_start() einmal ausgeführt hast, gibt es auch eine session-id.

Wenn du das ganze jetzt aus der Sicht des Logins siehst ist quasi jeder Besucher erstmal ein Gast. Aber eben ein Gast den du wieder-erkennen kannst solange die Session gültig ist. Und ZU dieser Wieder-Erkennung kannst du Daten abspeichern wie "User hat sich erfolgreich eingeloggt mit den Daten die in der Datenbank zu ID x gehören". Das weiss dann eben jedes Script was session_start() ausführt. Und alles was du zu dem User abspeicherst kannst du eben auch wieder löschen und aus ihm somit wieder einen Gast machen.
cycap ist offline  
Alt 05.11.2008, 10:42  
Erfahrener Benutzer
 
Benutzerbild von nofear87
 
Registriert seit: 27.09.2008
Beiträge: 192
nofear87 befindet sich auf einem aufstrebenden Ast
Standard

ahh Danke ich glaube der Groschen ist gefallen, werd mich gleich mal ans testen machen.
nofear87 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
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
Session in Session tinchen PHP Tipps 2007 22 21.03.2007 19:53
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
Frage zur Anwendung einer Session mehrfach... GELight PHP Tipps 2006 10 12.03.2006 16:47
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Bei Session - verfall socke PHP Tipps 2005-2 12 01.09.2005 02:30
Klassenobjekt in ner Session speichern?! Finkman PHP Tipps 2005-2 5 09.08.2005 00:38
Session wird nicht angelegt PHP Tipps 2005-2 7 24.07.2005 13:35
Kreieren einer Session PHP Tipps 2005 11 28.05.2005 15:16
verliere Session Sonja PHP Tipps 2005 3 27.04.2005 09:32
Session Problem PHP-Fortgeschrittene 3 18.02.2005 14:37
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28
$_GET und Session PHP Tipps 2004 9 20.06.2004 19:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
warning: session_destroy() [function.session-destroy]: trying to destroy uninitialized session in, warning: session_destroy() [function.session-destroy]: trying to destroy uninitialized session, trying to destroy uninitialized session, php trying to destroy uninitialized session, trying to destroy uninitialized session php, warning: session_destroy(): trying to destroy uninitialized session, php \trying to destroy uninitialized session\, uninitialized session php, php session destroy, uninitialized session, session_destroy() [function.session-destroy]: trying to destroy uninitialized session in, warning: session_destroy() [function.session-destroy]:, session_destroy() [function.session-destroy]: trying to destroy uninitialized session, session_destroy(): trying to destroy uninitialized session in, warning: session_destroy() [function.session-destroy]: trying to destroy uninitialized session in d:\\xampp\\htdocs\\logout.php on line 2, user wiedererkenne sessions, session php destroy, php uninitialized session in, google session_destroy() [function.session-destroy]: trying to destroy uninitialized session, warning: session_destroy() [function.session-destroy]: trying to destroy uninitialized session in c:\\xampp\\htdocs\\logout.php on line 3

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