Ankündigung

Einklappen
Keine Ankündigung bisher.

Session läuft ohne Befehl einfach ab!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • senna94
    hat ein Thema erstellt Session läuft ohne Befehl einfach ab!.

    Session läuft ohne Befehl einfach ab!

    Hallo,
    ich habe ein ziemlich komisches Problem.

    Wenn ein eingeloggter User auf einen Link klickt, wird bei ihm automatisch in der Datenbank eine Option geändert. Das klappt auch einwandfrei, Problem nur:
    Wenn ich mit header(' Location... ') auf die Seite dann wieder zurückleite, ist der User plötzlich nicht mehr eingeloggt!

    Wenn ich jetzt auf /logout.php klicke und eig. dann die Session zerstöre, bin ich plötzlich wieder eingeloggt.

    Ziemlich komisch in meinen Augen!!


    Achtung!
    Das Problem tritt bei allen Browsern auf, nur beim Internet Explorer nicht.

    Gerne darf das getestet werden!

    http://www.vpro.pf-control.de/filme/login.php

    Benutzer: php.de
    pw: test

    IM MENÜ auf "Wer war heute Online klicken" -> rechts auf "Unsichtbar-Modus aktivieren/deaktivieren" klicken.


    Der Code der Seite (wo man zurückgeleitet wird) lautet, auszugsweise: (1 Zeile auf der Seite)

    PHP-Code:
    <?php

        session_start
    ();
        
    session_regenerate_id();

    $benutzer "".htmlspecialchars($_SESSION['user']['username'])."";
    Hiermit rufe ich dann den User ab, mache eine SQL Abfrage und bekomme weitere Userdaten, alles kein Problem. Müsste eig. ja auch klappen!

    Hier ist der Code, der ausgeführt wird, wenn man auf "Unsichtbar-Modus aktivieren/deaktivieren" klickt!

    PHP-Code:
     <?php
    {
     
    $benutzername $_POST['user'];
     
    $unsichtbar "ja";
    {
       
    $dz = @mysql_connect(localhost,xxx,xxx
          OR die(
    'Verbindung fehlgeschlagen');
        
    mysql_select_db(xxx
          OR die(
    'Konnte Datenbank nicht benutzen');
        
    $sql "UPDATE users SET unsichtbar='$unsichtbar'
     WHERE username='
    $benutzername'";
       
    mysql_query($sql) OR die(mysql_error());

    }
    header('Location: http://www.vpro.pf-control.de/filme/todayonline.php');
    }
       
    ?>
    Danach leitet der Code mich auf die Seite zurück und das Problem ist vorhanden!


    Der Log Out Code lautet:

    PHP-Code:
    <?php
        session_start
    ();
        
    $_SESSION = array();
        if (
    ini_get('session.use_cookies')) {
            
    $params session_get_cookie_params();
            
    setcookie(
                
    session_name(),
                
    '',
                
    time() - 42000,
                
    $params['path'],
                
    $params['domain'],
                
    $params['secure"'],
                
    $params['httponly']
            );
        }
        
    session_destroy();
        
    header('Location: http://vpro.pf-control.de/filme/testseitephp.php');
    ?>
    LG Lukas

  • Arne Drews
    antwortet
    Kann man denn nicht ungefähr mal einschätzen, wieso eine Session auf einmal verschwindet? Wieso ist sowas überhaupt ohne den PHP Befehl möglich?
    Du weisst nicht wirklich, wie eine Session funktioniert, oder?

    Ob ich jetzt sqli, oder pdo, oder was anderes verwende, hat ja eig. nichts damit zu tun, ob sessions funktionieren, oder bin ich da falsch informiert?
    Mit der Session an sich nicht, war nur als Tipp gemeint: http://php.net/manual/de/migration55.deprecated.php
    Für den Fall, daß Du annimmst, Deine Scripte länger in Betrieb halten zu wollen.

    Einen Kommentar schreiben:


  • VPh
    antwortet
    Zeig mal den Originalcode. (nicht nur auszüge)

    Einen Kommentar schreiben:


  • senna94
    antwortet
    session_write_close() bringt nichts.
    Kann man denn nicht ungefähr mal einschätzen, wieso eine Session auf einmal verschwindet? Wieso ist sowas überhaupt ohne den PHP Befehl möglich?

    Einen Kommentar schreiben:


  • Arne Drews
    antwortet
    Das setzt Du vor header(...)

    Einen Kommentar schreiben:


  • senna94
    antwortet
    Hallo,
    session_write_close() bringt jetzt gar nichts. Bzw. wo muss ich das überall hinsetzen? reicht das beim Login, oder auf jeder Seite?

    Kenne mich mit Sessions nicht sehr gut aus, habe da ein fertiges Script genommen und etwas umgestaltet.

    Ob ich jetzt sqli, oder pdo, oder was anderes verwende, hat ja eig. nichts damit zu tun, ob sessions funktionieren, oder bin ich da falsch informiert?

    Einen Kommentar schreiben:


  • Arne Drews
    antwortet
    Evtl. session_write_close() anschauen.

    und fang man gleich an, Deine mysql_* Fussel auf PDO oder MySQLi umzubauen.
    @ ist auch nicht sonderlich hilfreich, wenns mal um Debugging geht!

    Einen Kommentar schreiben:

Lädt...
X