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

  • 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


  • #2
    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!
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      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?

      Kommentar


      • #4
        Das setzt Du vor header(...)
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          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?

          Kommentar


          • #6
            Zeig mal den Originalcode. (nicht nur auszüge)
            Relax, you're doing fine.
            RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

            Kommentar


            • #7
              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.
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar

              Lädt...
              X