problem mit cookies...

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

  • problem mit cookies...

    hi, habe folgendes problem, ich will das man eingeloggt bleibt und nicht sobald die session endet sich neu einloggen muss.

    so sieht die login datei aus

    PHP-Code:
    <?php
    $userdatei 
    fopen ("$pfad_server/user.txt","r"); 
    while (!
    feof($userdatei)) 
       { 
       
    $zeile fgets($userdatei,500); 
       
    $userdata explode("|"$zeile); 

       if (
    $userdata[0]==$username and $passwort==trim($userdata[1])) 
          { 
          
    $_SESSION['username'] = $username
                         
    $log 1

          
    setcookie ("Username""$username"time()+(3600*24*100)); 
          
    setcookie ("Passwort""$passwort"time()+(3600*24*100)); 



          } 



       } 
    fclose($userdatei);
    ?>
    naja und so die index.php:
    die echos sind nur zum testen...
    PHP-Code:
    if (isset($_COOKIE['Username']) and $_COOKIE['Passwort'])
       {
    $username $_COOKIE['Username'];
    $username trim($username);
    $pw $_COOKIE['Passwort'];
    $pw trim($pw);
    echo
    "$username und $pw";

    $userdatei fopen ("$pfad_server/user.txt","r");
    while (!
    feof($userdatei))
       {
       
    $zeile fgets($userdatei,500);
       
    $userdata explode("|"$zeile);

       if (
    $userdata[0]==$user and $pw==trim($userdata[1]))
          {
          echo
    "$username";
          
    $_SESSION['username'] = $username;
                         
    $log 1;

          }
       }

      } 
    cookies usw werden richtig gesetzt, und eiglt klappt alles bis auf, dass ich immernoch automatisch nachdem die session endete ausgeloggt werde...
    was mach ich falsch??
    1123581321

  • #2
    PHP-Code:
    setcookie ("Username""$username"time()+(3600*24*100)); 
    Wie lange hält das Cookie? 100 Stunden.

    Kommentar


    • #3
      und?
      100 stunden reichen doch fuers erste?
      imo sind das 100 tage..
      k.a. wie du rechnest aber für mich sind das 100 tage
      1123581321

      Kommentar


      • #4
        ja, meinte ich auch.

        Hatte dein Posting aber falsch gelsen. Will schließlich auch gelernt sein. Sorry.

        Kommentar


        • #5
          np, naja aber weiterhelfen kannst du mir nicht oder??
          1123581321

          Kommentar


          • #6
            Ähm, ich sehe nur die Überprüfung von Cookie, aber von Session nicht, wie stellst du also fest, dass das SessionTimeOut eintritt bzw. dass der User ausgeloggt ist?

            Kommentar


            • #7
              also so:??

              PHP-Code:
              if (!isset($_SESSION['username']))
                 {
              if (isset(
              $_COOKIE['Username']) and $_COOKIE['Passwort'])
                 {
              $username $_COOKIE['Username'];
              $username trim($username);
              $pw $_COOKIE['Passwort'];
              $pw trim($pw);
              echo
              "$username und $pw";

              $userdatei fopen ("$pfad_server/user.txt","r");
              while (!
              feof($userdatei))
                 {
                 
              $zeile fgets($userdatei,500);
                 
              $userdata explode("|"$zeile);

                 if (
              $userdata[0]==$user and $pw==trim($userdata[1]))
                    {
                    echo
              "$username";
                    
              $_SESSION['username'] = $username;
                                   
              $log 1;

                    }
                 }

                }
                } 
              kann mir aber nicht vorstellen was das an der sache ändert??
              ausprobiert ändert sich auch nicht viel..
              1123581321

              Kommentar


              • #8
                ich habe nicht gesagt, dass du deinen Code ändern sollst, sondern ich hatte gefragt:
                Original geschrieben von asp2php
                ...wie stellst du also fest, dass das SessionTimeOut eintritt bzw. dass der User ausgeloggt ist?
                was du immer noch nichts drüber berichtet hast.

                Kommentar


                • #9
                  mit dem befehl
                  PHP-Code:
                  if (!isset($_SESSION['username']))
                     {

                  stelle ich fest ober der user ausgeloggt ist...
                  1123581321

                  Kommentar


                  • #10
                    wenn du Cookie und Session verwendest, muß du beides prüfen und ggf. die Session virtuell 'verlängert', falls der User mal länger als SessionTimeOut wegbleibt, wenn der Cookie noch gültigt ist. Du darfst den User erst wegkicken, wenn:
                    1. Cookie abgelaufen ist und
                    2. SessionTimeOut überschritten ist, oder
                    3. der User sich explizit ausloggt.
                    Wenn einer von beiden Bedingungen noch gültigt ist, dann mußt du der andere Part verlängern.

                    Und frage jetzt nicht wie, sondern überlege dir mal was

                    Kommentar


                    • #11
                      hm versteh ich nich ganz, wieso muss ich dann den andren part verlängern??
                      bzw. mir is nicht klar wie man eine sessiion verlängern soll??

                      wenn die session out-timed, dann wird doch vom cookie die userdaten geholt, verglichen und eine neue session gesetzt..??
                      wieso muss ich dann den andren part verändern???
                      beim logout, wird halt dann der cookie gelöscht..
                      Zuletzt geändert von Enerkin; 04.12.2004, 22:32.
                      1123581321

                      Kommentar


                      • #12
                        will mir den keiner helfen??
                        1123581321

                        Kommentar


                        • #13
                          wie sieht dein code aktuell aus?

                          testausgaben gemacht?

                          Kommentar


                          • #14
                            Original geschrieben von Enerkin
                            wenn die session out-timed, dann wird doch vom cookie die userdaten geholt, verglichen und eine neue session gesetzt..??
                            wieso muss ich dann den andren part verändern???
                            wenn du neue Session generierst, verlierst du alle bisdahin gespeicherte SessionVariable, d.h. du mußt alle neuanlegen, und wenn du z.B. Usereingaben drauf abgelegt hast, tja ...
                            Original geschrieben von Enerkin
                            beim logout, wird halt dann der cookie gelöscht..
                            session_destroy und unset($_SESSION['var'] nicht vergessen.

                            Kommentar


                            • #15
                              usereingaben??
                              die werden doch sofort gespeichert....
                              mittlerweile funktioniert es.. hatte eine variable falsch benannt...
                              1123581321

                              Kommentar

                              Lädt...
                              X