problem mit cookies...

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


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

      Comment


      • #4
        ja, meinte ich auch.

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

        Comment


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

          Comment


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

            Comment


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

              Comment


              • #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.

                Comment


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

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

                  Comment


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

                    Comment


                    • #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..
                      Last edited by Enerkin; 04-12-2004, 21:32.
                      1123581321

                      Comment


                      • #12
                        will mir den keiner helfen??
                        1123581321

                        Comment


                        • #13
                          wie sieht dein code aktuell aus?

                          testausgaben gemacht?

                          Comment


                          • #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.

                            Comment


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

                              Comment

                              Working...
                              X