Session-Zeiteinstellung

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

  • Session-Zeiteinstellung

    Hi,

    ich bin noch nicht so lange mit php am programmieren, habe aber jetzt eine seite mit sessions aufgebaut. Nur eingeloggte benutzer können auf diese Seite zugreifen.
    Jetzt ist meine Frage: Gibt es eine Funktion die eine session nach einer bestimmten Zeit der inaktivität automatisch beendet und in der ich die Zeit selber festlegen kann? Oder muss man das selber über eine timestamp-abfrage programmieren?

    Wäre klasse wenn ihr mir helfen könntet.

  • #2
    such mal nach session_maxlifetime entweder hier im Forum oder im Manual

    Kommentar


    • #3
      ah ja. ok, ich habs gefunden:

      Mit session_set_cookie_params() kann man verschiedene Parameter eines
      Cookies bestimmen. Die Funktion wirkt sich nur im aktuellen Skript aus.
      Folgende Parameter sind zulässig:
      lifetime - Lebensdauer des Cookies
      path - Speicherpfad des Cookies (optional)
      domain - Domain des Cookies (optional)

      thx!

      Kommentar


      • #4
        Ähm... das ist für Session-Kekse nicht die Session selbst, das hier habe
        ich gemeint:

        ini_set('session.gc_maxlifetime',$ZeitInSekunden)

        Kommentar


        • #5
          mach es mit einem zeitvergleich bei jedem aufruf,
          z.B. ist zeit x überschritten, halt eine sessionvar. von on auf off setzen. diese auch immer bei jedem aufruf checken.
          mfg
          marc75

          <Platz für anderes>

          Kommentar


          • #6
            Original geschrieben von asp2php
            Ähm... das ist für Session-Kekse nicht die Session selbst, das hier habe
            ich gemeint:

            ini_set('session.gc_maxlifetime',$ZeitInSekunden)
            Wie wende ich das dann an?
            genügt da ein aufruf beim erstellen der session und die session wird dann bei jedem aufruf erneuert? oder muss ich das bei jedem aufruf manuell machen?

            Kommentar


            • #7
              Original geschrieben von marc75
              mach es mit einem zeitvergleich bei jedem aufruf,
              z.B. ist zeit x überschritten, halt eine sessionvar. von on auf off setzen. diese auch immer bei jedem aufruf checken.
              thx...
              das wäre die alternative. aber wenn es bereits eine fertige funktion gibt, brauche ich es ja nicht per hand zu programmieren...

              Kommentar


              • #8
                Sets the value of the given configuration option. Returns the old value on success, FALSE on failure. The configuration option will keep this new value during the script's execution, and will be restored at the script's ending. Link
                [

                Kommentar


                • #9
                  Original geschrieben von deus ex
                  thx...
                  das wäre die alternative. aber wenn es bereits eine fertige funktion gibt, brauche ich es ja nicht per hand zu programmieren...
                  es gibt dafür keine fertige Funktion:

                  ließ mal hier:
                  http://de.php.net/manual/de/ref.session.php
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    hmmm... das klingt alles ganz gut...

                    Aber jetzt ist folgendes: (vielleicht auch ein verständnisproblem meinerseits)
                    Ich möchte dass sich der User einloggt. Die abfrage geschiet über eine mySql-Abfrage, bei deren erfolrgreicher Durchführung einige Variablen in der session gespeichert werden:
                    bei reseller und preise oder gast und gast werden generelle anmeldungen vergeben, für benutzer die nicht in der datenbank stehen.

                    PHP-Code:
                    session_start();

                    $query_login_verify "SELECT * FROM login WHERE user='".$user_login."'";
                    $res_login_verify mysql_query($query_login_verify) or exit("error login_verify:1 ".mysql_error());
                        
                    $entry_login_verify mysql_fetch_array($res_login_verify);

                        if(
                    $entry_login_verify['password'] == $pasw_login){
                            
                    $_SESSION['login'] = true;
                            
                    $_SESSION['user'] = $entry_login_verify['user'];
                            
                    $_SESSION['pasw'] = $entry_login_verify['password'];
                            
                    $_SESSION['type'] = $entry_login_verify['type'];
                            
                    $_SESSION['rabatt'] = $entry_login_verify['rabatt'];
                        }
                        elseif(
                    $user_login == "reseller" && $pasw_login == "preise"){
                            
                    $_SESSION['login'] = true;
                            
                    $_SESSION['user'] = time();
                            
                    $_SESSION['pasw'] = "0103";
                            
                    $_SESSION['type'] = 1;
                            
                    $_SESSION['rabatt'] = 1;
                        }
                        elseif(
                    $user_login == "gast" && $pasw_login == "gast"){
                            
                    $_SESSION['login'] = true;
                            
                    $_SESSION['user'] = time();
                            
                    $_SESSION['pasw'] = "0103";
                            
                    $_SESSION['type'] = 0;
                            
                    $_SESSION['rabatt'] = 1;
                        }
                    else 
                    {
                    // Anmeldeformular

                    Dann bei jedem seitenaufruf wird geprüft:
                    PHP-Code:
                    if($_SESSION['login'] == true
                        {
                            
                    session_name();
                            
                    session_start();
                            
                    //echo "logged_in";
                        
                    }
                        else {
                        echo(
                    "<head><style>input { width: 50%; } </style></head>");
                        echo(
                    "<table width=\"19%\" cellspacing=\"0\" cellpadding=\"4px\"><tr><td><font face=\"Arial, Helvetica, sans-serif\">Please login.</font></td></tr>");
                        echo(
                    "<tr><td align=\"right\"><form method=\"post\" action=\"login.php\"><input type=\"submit\" value=\"Login\"></form></td></tr></table>");
                        exit;
                        } 
                    Jetzt kommt es vor, dass je ab und an, (manchmal nach 1 minute, manchmal erst nach 20 minuten) der server ausgibt dass man nicht mehr angemeldet ist.... warum?
                    Ich dachte das hätte was mit dem Timaout der session zu tun, aber meine bemühungen waren bisher erfolglos :-(
                    Zuletzt geändert von deus ex; 14.04.2004, 17:06.

                    Kommentar


                    • #11
                      PHP-Code:

                      //was issen das?
                      //du musst erst session_start() aufrufen bevor du auf die session zugreifen kannst
                      if($_SESSION['login'] == true
                          {
                              
                      session_name();
                              
                      session_start();
                              
                      //echo "logged_in";
                          

                      mfg
                      marc75

                      <Platz für anderes>

                      Kommentar


                      • #12
                        ja mach ich auch. habe ich vergessen zu posten.

                        session_start(); wird per require() in einer externen datei aufgerufen

                        das skript geht ja auch alles. bloß dass ich total zufällig rausgeworfen werde....
                        weiss denn keiner woran das liegen kann?

                        Kommentar

                        Lädt...
                        X