Ankündigung

Einklappen
Keine Ankündigung bisher.

Session verlängern

Einklappen

Neue Werbung 2019

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

  • #31
    Du wirst wohl nicht darum herum kommen, ein kleines Beispiel zu schreiben, bei dem das Problem nachvollziehbar für jeden anderen auftritt. Diese einzelnen script-übergreifenen Code-Ausschnitte sind da nur sehr begrenzt hilfreich.

    Desweiteren solltest du dir die HTTP-Header in den HTTP-Responses anschauen, ob dort wirklich die gewünschte Lebenszeit gesetzt wird.

    Kommentar


    • #32
      Zitat von hellbringer Beitrag anzeigen
      die HTTP-Header in den HTTP-Responses anschauen, ob dort wirklich die gewünschte Lebenszeit gesetzt wird.
      Nun habe ich mal nachgeschaut wie ich das machen könnte ... das ist für mich als "Gelegenheitsscripter" wieder eine riesige Herausforderung ohne Ende ... und das nur weil ich die Sessionsdauer verlängern möchte.

      Kommentar


      • #33
        Naja, niemand hat behauptet, dass es einfach ist und schnell geht. Ich kann auch nicht mal einfach in einer halben Stunde die Radaufhängung von meinem Auto austauschen und dann geht plötzlich alles einwandfrei.

        Webentwicklung ist ein sehr vielschichtiges Gebiet mit vielen Technologien (TCP/IP, HTTP, HTM, PHP, SQL, CSS, JavaScript, Bildverarbeitung, usw. usf.), die man alle irgendwie verstehen sollte. Auch sollte der Umgang mit dem eigenen Browser und seinen Möglichkeiten geübt sein.

        In den meisten Browsern kommt man mit F12 in eine Debug-Ansicht und dort gibt es einen Tab mit Netzwerkinfos. Da sollten alle HTTP-Requests/Responses aufgelistet sein.

        Kommentar


        • #34
          Wie testet du es denn? Lässt du deinen Browser offen und bist dann irgendwann ausgeloggt. Oder schließt du deinen Browser und öffnest ihn dann irgendwann wieder?

          Hast du noch weitere Addons im Browser aktiviert, wie z.B. AddBlocker etc. welche ggf. die Cookies im Browser löschen. Hast du deinen Browser vll. so konfiguriert, dass er Cookies nach dem schließen löscht?
          Sind die Cookies weiterhin im Browser Debug Tab zu sehen?

          Kommentar


          • #35
            Ich habe ein test.php geöffnet, dass ich nach gewisser Zeit "reloade". Da zeige ich mit "echo" gesetzte Cookis und die Session an:
            Cookies username: nebbiolo
            Cookies Datum: 2020-10-16 17:41:24
            Session-ID: 1
            Session-Name: nebbiolo
            Session-Datum: 2020-10-16 19:43:50

            Diese schliesse ich nie zum testen und habe auch schon mehr als 30 Minuten keine ander Aktion am PC vorgenommen.

            Mit F12 erhalte ich die "richtigen?" Werte:
            Cookie: PHPSESSID=e3nmq26ouvkprbpog6d6bi1ctl; username=nebbiolo; prog=%2Ftxtein.php%3Fpar%3D5; program=abart.php; datum=2020-10-16+17%3A41%3A24; datzeit=2020-10-16+19%3A43%3A50

            Bei den Addons sind nur Chrom-Apps und googel-Docs aktiviert.

            Kommentar


            • #36
              Mal eine andere Frage, auf deinem Entwicklungsserver geht es so wie du möchstest? Oder gehts da auch nicht? Du hast doch einen Entwicklungsserver, auf dem du programmierst und testest, oder?

              Kommentar


              • #37
                Zitat von hellbringer Beitrag anzeigen
                Mal eine andere Frage, auf deinem Entwicklungsserver geht es so wie du möchstest? Oder gehts da auch nicht? Du hast doch einen Entwicklungsserver, auf dem du programmierst und testest, oder?
                Nein habe ich nicht und ich bin auch kein professioneller Entwickler ... sondern ein pensionierter alter Mann

                Kommentar


                • #38
                  Na, dann richte dir doch auf deinem Rechner zu Hause erst mal eine Serverumgebung ein, denn so kann man ja nicht arbeiten, das ist doch viel zu umständlich.
                  Wenn du Windows hast lädst du dir WAMP herunter, da ist schon alles dabei was du brauchst. Anleitung dazu.

                  Wenn du linux hast sag noch mal welche Distribution du verwendest.

                  Wenn du soweit bist kannst du loslegen.

                  Kommentar


                  • #39
                    protestix ... da habe ich mich aber auf etwas eingelassen ... ich habe nun WAMP installiert ... die Russen werden nun sicher meine PC ausspionieren
                    Aber das "Ding" scheint wirklich gut zu funktionieren und hat mir schon unendlich viele Notice und Warning gemeldet.

                    So habe ich als erstes dei Session geändert:
                    PHP-Code:
                    $uid=null;
                    $uname=$prog="";
                    session_start();
                    if (isset(
                    $_SESSION['phi_uid']))
                       {
                       
                    $uid   $_SESSION['phi_uid'];
                       
                    $uname $_SESSION['phi_uname'];
                       
                    $prog  $_SESSION['prog'];
                       } 
                    Dieser Befehlt hat den Fehler gegeben:
                    if ($_SESSION['phi_uid'] >0) // Undefined variable

                    Ich bin nun 3 Stunden nicht mehr "rausgefallen" - kann es wirklich sein dass dieser "Fehler?" der Grund für das "verlieren" der Session war?

                    Nun habe ich viiiiele "undefined variable" - muss ich nun überall "if (isset ..." davorstellen oder gibt es eine globale Möglichkeit?

                    Vielen Dank auf alle Fälle für mein neues "Dada" das wird mir wahrscheinlich noch viel helfen ...

                    Schönes Wochenende

                    Kommentar


                    • #40
                      Nun habe ich viiiiele "undefined variable" - muss ich nun überall "if (isset ..." davorstellen oder gibt es eine globale Möglichkeit?
                      Wenn du default Werte setzen möchtest, kannst du auch $uid = $_SESSION['phi_uid'] ?? 0; schreiben. Dann ist die Variable auf 0 gesetzt wenn der Array Key nicht existiert oder null ist.

                      Generell hast du die Fehler auch vorher bekommen, nur wurden sie dir auf Grund von der Produktiveinstellung bei deinem Provider sehr wahrscheinlich in einer Log Datei geschrieben, statt dem Benutzer im Browser anzuzeigen.

                      Kommentar


                      • #41
                        Du hängst hier in den Grundlagen von PHP fest. Die solltest du dir mal aneignen und dazu ist es notwendig sich das Handbuch durchzulesen, bei dir reicht wohl erst mal die Kapitel Sprachreferenz und Sicherheit.

                        Zudem Superglobale Variablen.

                        PHP-Code:
                        if ($_SESSION['phi_uid'] >0
                        ergibt FALSE wenn da nichts drin steht. Wenn du prüfen willst ob was drin steht dann immer isset anwenden erst danach schauen was drin steht. Session wird auch erst durch [] zum Array, davor wenn nichts gemacht wird, ist diese Variable undefiniert und wird durch PHPs eigenen Automatismus zu NULL. Das ist ein Unterschied zu anderen Sprachen, wo Variablen immer initialisiert werden müssen und stellt eine gemeine Fehlerquelle dar, wie du ja gemerkt hast.

                        Demnach
                        PHP-Code:
                        if (isset($_SESSION['uid'] && (int)$_SESSION['phi_uid'] > 0) {
                            
                        // $_SESSION['phi_uid'] ist jetzt zumindest ein integer und grösser 0

                        Die Variante von Zeichen32 stellt eine Verkürzte Alternative dar.

                        Kommentar


                        • #42
                          Was sagt phpinfo() zum Speicherort der Sessions? (save_path) Ist der allgemein oder sieht der spezifisch/User bezogen aus?

                          Kommentar


                          • #43
                            erc im phpinfp entnehme ich folgendes:
                            session.save_path /var/lib/php5/sessions
                            Ich habe php 7.2 eingestellt und beim Provider kann ich die save_path selbst nicht ändern.
                            Der Pfad existierte jedoch nicht ... ich hab den nun mal erstellt (auf der Ebene von httpdocs) ... abgelegt hat es nach dem Login aber nichts.

                            ... und mein Problem mit dem "verlieren" der Session ist immer noch da ... allerdings teilweise erst nach 2-3 Stunden.

                            Kommentar


                            • #44
                              Zitat von nebbiolo Beitrag anzeigen
                              session.save_path - /var/lib/php5/sessions
                              Damit kann es sein dass dir andere Scripte die Session-Dateien unter dem Hintern weg löschen (wie schon in #7 geschrieben) …

                              Ich habe php 7.2 eingestellt und beim Provider kann ich die save_path selbst nicht ändern.
                              Doch, kannst du, session_save_path(), ini_set() sowie der Parameter von session_start() existieren, per .htaccess geht es evtl. auch - aber nicht vergessen, vor/bei *jedem* session_start()!

                              PS: nein, du hast den Pfad sicher nicht erstellt, auf /var hast du sicher keinen Zugriff (der Pfad ist absolut, nicht von deinem httpdocs aus gesehen!).

                              Kommentar


                              • #45
                                Session-Dateien unter dem Hintern weg löschen
                                Aber wenn ich keinen Zugriff auf /var ... habe, wer kann dann etwas löschen?

                                Nun habe ich ein Verzeichnis /sessions erstellt und vor dem session_start() session_save_path('../sessions'); eingefügt.
                                Ist ini_set('session.gc_probability', 1); auch noch ein muss?

                                Kommentar

                                Lädt...
                                X