Logout - Erst Session_Destroy und dann SESSION starten?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
bedingung
benutzer
bleibe
blocken
code
datei
fehler
fehlermeldung
header
index
leeres array
login
machen
paste
probier
rein code
session
url
weiterer code
-
Hey!
Wenn ich mich bei meiner Seite auslogge kommt nur eine weiße Seite.
<?php session_start(); session_destroy(); $_SESSION['SESS_logout'] = "Erfolgreich ausgeloggt"; session_write_close(); header('Location: ../../index.php.php'); exit; ?>
GEHT DAS? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
bastitrial schrieb:
GEHT DAS?
probier's aus :)
.... ich mach es mitsession_unset();
<?php // ------------------------------- session_start(); if (!empty($_REQUEST['seite']) && $_REQUEST['seite'] == 'Logout') { session_unset(); $_SESSION['message'] = "Sie haben sich erfolgreich ausgeloggt"; header('Location: index.php'); exit; } else { print '<p>Sie sind noch eingeloggt.</p>'."\n"; print '<form name="form1" method="post" action="">'."\n"; print '<input type="submit" name="seite" value="Logout" />'."\n"; print '</form>'."\n"; } // ------------------------------- ?>
wenn DU auf $_SESSION zugreifen willst, muss immer auch session_start(); vorher gesetzt sein.
Wenn Du anstatt mit
lieber mitsession_unset();
machen willst,session_destroy();
dann nach destroy die Session auch wieder neu starten ....
session_start(); session_destroy(); session_start();
ist aber quasi das gleiche wiesession_unset();
oder man könnte der Varaiable einfach leeres Array zuweisen$_SESSION = array();
.. viele Wege führen nach Rom .. :)
Beitrag zuletzt geändert: 25.3.2013 19:57:21 von thumbshots -
Vielen Dank für die schnelle Antwort :)
Probier ich gleich mal aus ;)
Aber noch eine Frage zu den leeren Arrays:
Ist das dann nicht so wenn ich SESSIONS leere Arrays zugebe das die dann z.B. auf meiner index.php für verwirrung sorgen könnten?
Ich meinte damit das ich auf so ziemlich jeder Seite SESSIONs auslese oder setze und wenn ein leeres Array gesetzt wird, kommt dann z.B. auch die Fehlermeldung "Benutzer fehlt" auf meiner index - obwohl noch keine Aktion einegtreten ist? -
das macht ja auch nur Sinn bei Logout,
und trifft ja nur zu, wenn der User den Logout Button geklickt hat (if-Bedingung)
dann ist es doch auch "normal", dass der "Benutzer fehlt" .. ist ja auch nicht eingeloggt
Du kannst ja leere SESSION mit einer if-Bedingung abfangen ... so in etwa:
if ( isset($_SESSION['username']) && !empty($_SESSION['username']) ) { print "<p>Hallo USER: <strong>".$_SESSION['username']."</strong> im Login-Bereich</p>\n"; } esle { print "<p>Sie sind nicht als USER eingeloggt ... zum <a href=\"login.php\">Login</a></p>\n"; }
also einzele Session-Elemente (Array-Keys) prüfen, ob sie existieren und nicht leer sind.
Beitrag zuletzt geändert: 25.3.2013 20:06:18 von thumbshots -
Also ich habe das jetzt ausprobiert ...
... es hat dann nach wie vor nicht geklappt :-/
Meine zweite Lösung das sie Session Destroy wird und danach auf eine weitere php Seite weitergeleitet wird und dort die Session gesetzt wird um danach auf die Index Seite um dort den Text ausgeben "Erfolgreich ausgeloggt." hat auch nicht funktioniert ...
Ich bleibe nach wie vor auf der Logout seite hängen und dort wird mir eine leere Seite angezeigt ..
Logout.php:
<?php session_start(); session_destroy(); header('Location: send.php'); exit; ?>
und meine send.php
<?php session_start(); $_SESSION['SESS_logout'] = "Erfolgreich ausgeloggt"; session_write_close(); header('Location: ../../index.php.php'); exit; ?>
-
bastitrial schrieb:
Ich bleibe nach wie vor auf der Logout seite hängen und dort wird mir eine leere Seite angezeigt ..
... leere Seite deutet auf PHP Fehler hin, der aber nicht ausgegeben wird ...
mach mal in der Seite (Login-Datei) oder in alle Dateien folgendes oben mit rein,
<?php // ------------------------------------------------ ini_set("display_errors", 1); error_reporting(E_ALL); // ---- weiterer Code ---- // ------------------------------------------------ ?>
ich weiß jetzt nicht ob
man
oderini_set("display_errors", 1);
macht,ini_set("display_errors", 'on');
oder es funktioniert beides ... egal
ist hat wichtig, damit Dir die Fehlermeldungen auch ausgegeben werden, anstatt leere weiße Seite
.. und ggf. dann hier die Fehlermeldung schreiben (copy-paste in Code-Block)
Beitrag zuletzt geändert: 25.3.2013 20:50:16 von thumbshots -
thumbshots schrieb:
bastitrial schrieb:
Ich bleibe nach wie vor auf der Logout seite hängen und dort wird mir eine leere Seite angezeigt ..
... leere Seite deutet auf PHP Fehler hin, der aber nicht ausgegeben wird ...
mach mal in der Seite (Login-Datei) oder in alle Dateien folgendes oben mit rein,
<?php // ------------------------------------------------ ini_set("display_errors", 1); error_reporting(E_ALL); // ---- weiterer Code ---- // ------------------------------------------------ ?>
ich weiß jetzt nicht ob
man
oderini_set("display_errors", 1);
macht,ini_set("display_errors", 'on');
oder es funktioniert beides ... egal
ist hat wichtig, damit Dir die Fehlermeldungen auch ausgegeben werden, anstatt leere weiße Seite
.. und ggf. dann hier die Fehlermeldung schreiben (copy-paste in Code-Block)
Vielen Dank :)
Ich weiss nun wo mein Fehler liegt :)
Viele dank!! -
bastitrial schrieb:
Also ich habe das jetzt ausprobiert ...
... es hat dann nach wie vor nicht geklappt :-/
Meine zweite Lösung das sie Session Destroy wird und danach auf eine weitere php Seite weitergeleitet wird und dort die Session gesetzt wird um danach auf die Index Seite um dort den Text ausgeben "Erfolgreich ausgeloggt." hat auch nicht funktioniert ...
Ich bleibe nach wie vor auf der Logout seite hängen und dort wird mir eine leere Seite angezeigt ..
Logout.php:
<?php session_start(); session_destroy(); header('Location: send.php'); exit; ?>
und meine send.php
<?php session_start(); $_SESSION['SESS_logout'] = "Erfolgreich ausgeloggt"; session_write_close(); header('Location: ../../index.php.php'); exit; ?>
Ich bleibe nach wie vor auf der Logout seite hängen und dort wird mir eine leere Seite angezeigt ..
Was sollte dir denn in der logout.php angezeigt werden?
Dort ist kein Befehl für irgendwelche Ausgaben vorhanden (ebenso in deiner send.php).
Wenn du nicht auf die "index.php.php" weitergeleitet wirst dann liegt es wohl daran, dass die Datei nicht gefunden werden kann.
Befindet sich die index.php.php im Verzeichnisbaum wirklich 2 Ebenen höher, wie bei deiner relativen Pfadangabe vorgesehen?
EDIT:Okay hat sich erübrigt.
Beitrag zuletzt geändert: 25.3.2013 20:58:37 von timebandit -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage