kostenloser Webspace werbefrei: lima-city


Logout - Erst Session_Destroy und dann SESSION starten?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bastitrial

    Kostenloser Webspace von bastitrial

    bastitrial hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. bastitrial schrieb:
    GEHT DAS?


    probier's aus :)

    .... ich mach es mit
    session_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
    session_unset();
    lieber mit
    session_destroy();
    machen willst,
    dann nach destroy die Session auch wieder neu starten ....

    session_start();
    session_destroy();
    session_start();


    ist aber quasi das gleiche wie
    session_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
  4. Autor dieses Themas

    bastitrial

    Kostenloser Webspace von bastitrial

    bastitrial hat kostenlosen Webspace.

    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?
  5. 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
  6. Autor dieses Themas

    bastitrial

    Kostenloser Webspace von bastitrial

    bastitrial hat kostenlosen Webspace.

    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;
    ?>
  7. 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
    ini_set("display_errors", 1);
    oder
    ini_set("display_errors", 'on');
    macht,

    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
  8. Autor dieses Themas

    bastitrial

    Kostenloser Webspace von bastitrial

    bastitrial hat kostenlosen Webspace.

    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
    ini_set("display_errors", 1);
    oder
    ini_set("display_errors", 'on');
    macht,

    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!!
  9. 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
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!