Sessions - "Lebens"zeit verlängern

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

  • Sessions - "Lebens"zeit verlängern

    Zur Zeit sind meine Sessions auf 1440s (=24min) begrenzt! Das heißt die Besucher meiner Seite werden nach 24 Minuten ausgeloggt...

    Wie kann ich das - ohne Cookies - verlängern auf bspw. 7200s (=3h)

    Grüße, Harakiri

    PS: Habe Suche benutzt, kam aber mit dem was ich fand nicht so richtig klar!

  • #2
    mit dem Befehl ini_set() kannst du Einstellungen der Php.ini verändern (abhängig von der Konfiguration des Servers und der PHPversion)

    folgendes (findest du im Link)
    session.gc_maxlifetime "1440" PHP_INI_ALL

    gruss

    Kommentar


    • #3
      ich habe es so versucht (zum testen):

      PHP-Code:
      <?
      ini_set("session.gc_maxlifetime","1");
      ?>
      hmm keine änderung laut php_info()...

      Wo kann man feststellen, ob ich das überhaupt darf?!

      Gruß, Harakiri

      Kommentar


      • #4
        Wenn ich mich recht entsinne, nimmt es keinen direkten Einfluss auf die INI, sondern überschreibt die Daten nur.

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          Wenn ich mich recht entsinne, nimmt es keinen direkten Einfluss auf die INI, sondern überschreibt die Daten nur.
          und das heißt? muss ich das jetzt jedesmal so in die scripts schreiben?

          Gruß, Harakiri

          PS: Noch andere Lösungen?!

          Kommentar


          • #6
            Steht so übrigens auch im Manual: (wenn man mal richtig ließt)
            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.
            Kannst es direkt in der INI ändern, wenn du zugriff hast. Ansonsten bleibt nur: In jedem Script einsetzen.

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              Steht so übrigens auch im Manual: (wenn man mal richtig ließt)


              Kannst es direkt in der INI ändern, wenn du zugriff hast. Ansonsten bleibt nur: In jedem Script einsetzen.
              hmm... habs auf 1s gesetzt und bin trotzdem wie immer angemeldet...

              Ist meine Syntax falsch (siehe oben)?

              Oder seh ich mal wieder den Wald vor lauter Bäumen nicht??

              Gruß, Harakiri

              Kommentar


              • #8
                moin
                Original geschrieben von TobiaZ
                Kannst es direkt in der INI ändern, wenn du zugriff hast. Ansonsten bleibt nur: In jedem Script einsetzen.
                wenn php als apache modul laeuft, kann der wert auch per .htaccess geaendert werden.
                Code:
                php_value session.gc_maxlifetime <zeit>
                http://www.php.net/manual/de/configuration.php

                mfg nimrod

                Kommentar


                • #9
                  Original geschrieben von nimrod
                  moin
                  wenn php als apache modul laeuft, kann der wert auch per .htaccess geaendert werden.
                  Code:
                  php_value session.gc_maxlifetime <zeit>
                  http://www.php.net/manual/de/configuration.php

                  mfg nimrod
                  danke - ich habe erstmal die Informationen an meinen Hoster geschickt!

                  Gibts noch weitere Möglichkeiten für mich, der keinen direkten Zugriff auf die .htaccess und die php.ini hat?

                  Irgendein Workaround, der einfach zu integrieren ist?!

                  Danke für die Hilfe!

                  Grüße, Harakiri

                  Kommentar


                  • #10
                    Vielleicht, wenn du deinen eigenen session-handler aufbaust.

                    Die Frage ist nur, bringt es das?

                    Wenn ein User 20min inaktiv ist, ist es Ihm auch zuzumuten, sich neu einzuloggen.

                    Kommentar


                    • #11
                      Original geschrieben von TobiaZ
                      Vielleicht, wenn du deinen eigenen session-handler aufbaust.

                      Die Frage ist nur, bringt es das?

                      Wenn ein User 20min inaktiv ist, ist es Ihm auch zuzumuten, sich neu einzuloggen.
                      hmm sehe gerade habe vergessen zu schreiben wo das problem liegt..

                      ich kopier einfach ganz billig die mail:
                      Ich habe eine Bitte an sie!

                      Und zwar benötigen wir für unsere Webseite (www.warhammersphere.de)
                      unbedingt Sessions, die länger "überleben" als 1440sekunden (=24min)!
                      Auf Cookies wollen wir aus diversen Gründen verzichten und es ist
                      daher sehr sehr wichtig, weil wir sehr lange Artikel haben, an denen
                      man gut und gerne mal 2-3 Std schreibt... wenn man dann auf "absenden"
                      klickt, aber ausgeloggt ist, ist das nicht lustig...

                      Daher bitte ich diesen Wert "session.gc_maxlifetime" in der php.ini
                      entweder von 1440 (=24min) auf 10800 (=3 Std) zu setzen, oder eben,
                      wenn PHP als Apache Modul vorliegt, in der .htaccess folgenden wert
                      setzen: "php_value session.gc_maxlifetime <zeit>" wobei zeit=10800
                      (=3Std)

                      Es ist wirklich sehr sehr wichtig!

                      Mit freundlichen Grüßen, Christian Weinberger
                      Antwort vom Hoster kam auch schon
                      Sehr geehrter Herr Weinberger,

                      die gewünschte Änderung ist leider nicht realisierbar. Wäre nur Sie auf
                      diesem Server ginge es problemlos, so leider nein.

                      Schreiben Sie Ihre Artikel doch offline..

                      Mit freundlichen Grüssen

                      unique designs
                      Support
                      ...

                      Bitte um Hilfe wegen Work-Around!!! Ist enorm wichtig!

                      Grüße, Harakiri

                      Kommentar


                      • #12
                        also ich hab für solche Sachen Global Config-Dateien für eine Seite, dann mußt du für sowas nur eine Datei ändern... der weg über ini_set ist dadurch sehr einfach... mit ini_get kannst du auch sehen, ob es geklappt hat!

                        gruss

                        Kommentar


                        • #13
                          Original geschrieben von MoRtAlAn
                          also ich hab für solche Sachen Global Config-Dateien für eine Seite, dann mußt du für sowas nur eine Datei ändern... der weg über ini_set ist dadurch sehr einfach... mit ini_get kannst du auch sehen, ob es geklappt hat!

                          gruss
                          könntest du mir das genauer erklären? Ich glaube es zwar verstanden zu haben, aber ich habe erstmal genug vom "blinden" testen

                          Gruß, und vielen Dank, Harakiri

                          Kommentar


                          • #14
                            mh... du nimmst eine datei für globale einstellungen, die für die ganze seite gelten (db-verbindung, pfadangaben, etc.)
                            dort kannst du auch solche sachen reinschreiben.

                            die datei wird dann per include in alle anderen dateien eingebunden...

                            und so sieht sowas für sessions aus:

                            echo ini_get("session.gc_maxlifetime")."<br>";
                            ini_set("session.gc_maxlifetime",20000);
                            echo ini_get("session.gc_maxlifetime");

                            das erste ini_get gibt den aktuellen wert aus, das 2. den geänderten...

                            gruss

                            Kommentar


                            • #15
                              also habe ich es doch richtig verstanden!

                              Danke - laut der Ausgabe funktioniert es...

                              aber wenn ich 1s einstelle, und meinetwegen 10s nix tue, warum bin ich dann immernoch eingeloggt??

                              Zur Übersicht:
                              beim einloggen passiert folgendes:
                              PHP-Code:
                              session_register('nickname'); 
                              und in der index.php (die IMMER mit aufgerufen wird):
                              PHP-Code:
                              session_start();
                              //echo ini_get("session.gc_maxlifetime")."<br>";
                              ini_set("session.gc_maxlifetime",1440);
                              //echo ini_get("session.gc_maxlifetime"); 
                              Warum loggt der mich nach 1s nicht aus?!

                              Kommentar

                              Lädt...
                              X