Ankündigung

Einklappen
Keine Ankündigung bisher.

Session funktioniert nicht bei session.use_cookies = Off

Einklappen

Neue Werbung 2019

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

  • Session funktioniert nicht bei session.use_cookies = Off

    HI!

    Ich habe ein Problem mit Sessions...
    und zwar funktioniert, wenn ich use_cookies auf Off stelle meine Scripts nur auf meinem HomePC (VMWare Linux Debian Sarge 3.1 Xampp). Auf meinem VServer (Debian 3.1 Sarge) funktioniert dies nicht...
    Nach dem dritten oder vierten aufrufen des Scripts, bleiben die $_SESSION einfach leer...
    Wenn ich use_cookies auf On stelle, dann funktioniert das Script auf beiden. Jedoch sollte jemand Cookies nicht zulassen, funktioniert es wiederrum nicht

    Hier mal die php.ini's:

    Local:
    session.auto_start Off Off
    session.bug_compat_42 On On
    session.bug_compat_warn On On
    session.cache_expire 180 180
    session.cache_limiter nocache nocache
    session.cookie_domain no value no value
    session.cookie_lifetime 0 0
    session.cookie_path / /
    session.cookie_secure Off Off
    session.entropy_file no value no value
    session.entropy_length 0 0
    session.gc_divisor 100 100
    session.gc_maxlifetime 1440 1440
    session.gc_probability 1 1
    session.name PHPSESSID PHPSESSID
    session.referer_check no value no value
    session.save_handler files files
    session.save_path /tmp /tmp
    session.serialize_handler php php
    session.use_cookies Off Off
    session.use_only_cookies Off Off
    session.use_trans_sid Off Off
    und hier online:
    session.auto_start Off Off
    session.bug_compat_42 On On
    session.bug_compat_warn On On
    session.cache_expire 180 180
    session.cache_limiter nocache nocache
    session.cookie_domain no value no value
    session.cookie_lifetime 0 0
    session.cookie_path / /
    session.cookie_secure Off Off
    session.entropy_file no value no value
    session.entropy_length 0 0
    session.gc_divisor 100 100
    session.gc_maxlifetime 3600 3600
    session.gc_probability 0 0
    session.hash_bits_per_character 4 4
    session.hash_function 0 0
    session.name PHPSESSID PHPSESSID
    session.referer_check no value no value
    session.save_handler files files
    session.save_path /var/lib/php5 /var/lib/php5
    session.serialize_handler php php
    session.use_cookies Off Off
    session.use_only_cookies Off Off
    session.use_trans_sid no value no value

    und hier noch das bisschen code:
    Code:
    // Session wird gefüllt:
    session_start();
    $_SESSION['nick'] = "blabla";
    $_SESSION['pw'] = "bloblo";
    
    
    
    // Session wird ausgelesen
    session_start();
    echo $_SESSION['nick']; // gibt blabla aus
    echo $_SESSION['pw']; // gibt bloblo aus
    soweit funktioniert das, jedoch nach dem 3-4 aufrufen des auslesensscripts, bleiben die $_SESSION[] einfach leer...

    Ich hoffe ich habe verständlich geschrieben und ihr könnt mir helfen
    Grüße
    Quagga

  • #2
    übergib die sessionid per getparameter!

    Kommentar


    • #3
      ich übergebe das bei use_cookies = Off folgendermassen:
      blabla

      Wird doch dann per Get übergeben oder bin ich jetzt ganz verpeilt?

      Kommentar


      • #4
        schreib statt <?= <?php würd ich immer so machen,

        naja, obs funktionierst siehst doch, an der url...?



        mfg
        Andi

        Kommentar


        • #5
          naja es geht auch so wie oben geschrieben, das problem liegt nicht darin, dass PHPSESSID leer wird bzw. plötzlich nurnoch bla.php? steht. mein problem ist, dass obwohl die SessionID übergeben wird, diese im script nicht ausgelesen wird...

          Kommentar


          • #6
            könnte es rein theoretisch an register_globals liegen?

            Die komplette Seite ist nämlich nch in register_globals = On geschrieben gewesen. Ich bin momentan dabei, die Seite mit register_globals = Off hinzubekommen (local ist es bereits auf Off um zu testen, was noch fehlt). Da die Site aber auf dem VServer noch funktionieren soll... ist auf dem VServer register_globals noch On

            Kommentar


            • #7
              problier mal statt SID einfach session_id()

              Kommentar


              • #8
                habe ich bereits auch schon probiert, leider mit selbem ergebnis


                es funktioniert immer nur 3-4mal, danach tote hose

                Kommentar


                • #9
                  so ich hab das problem jetzt glaube ich lokalisiert...

                  und zwar sind die dateien im /tmp ordner 0kb gross...
                  wie kann ich das ändern?

                  Kommentar


                  • #10
                    und da hab ich auch den fehler gefunden...

                    @session_unset();
                    $_SESSION=array();

                    bewirkt bei mir irgendwie die totale löschung ALLER sessions

                    Kommentar


                    • #11
                      bewirkt bei mir irgendwie die totale löschung ALLER sessions
                      Hab mir Dein Posting zwar nicht ganz genau durchgelesen, aber was hast Du denn erwartet?
                      Mit session_unset() hebt man die Registrierung aller Variablen auf, welche in der aktuellen Session angelegt wurden.

                      Kommentar


                      • #12
                        Zitat von Quagga
                        und da hab ich auch den fehler gefunden...

                        @session_unset();
                        $_SESSION=array();

                        bewirkt bei mir irgendwie die totale löschung ALLER sessions
                        Äh, ja? Pro User existiert bloss eine Session ^^ und (wie scho gesagt) wird mittels session_unset die Session geleert (übrigens: nicht gelöscht). Im Endeffekt tut $_SESSION = array(); das selbe, bloss hab ich mal gelesen, dass man die direkte Zuweisung auf die Session-Variable vermeiden sollte (und stattdessen session_unset bzw auf die Indizes des Arrays zgreifen), weil es sonst wohl zu Zuweisungproblemen zwischen Session und Session-Variable kommen kann.

                        Zumindest ist
                        Code:
                        @session_unset();
                        $_SESSION=array();
                        doppelt gemoppelt, weil $_SESSION von sich aus immer ein Array is
                        Nicht jeder Fehler ist ein Bug.

                        Kommentar


                        • #13
                          okay, ich hab mich etwas undeutlich ausgedrückt...

                          1. meinte ich leeren, nicht löschen
                          2. das hab ich mal irgendwo in nem tutorial gelesen à la "doppelt gemoppelt hält besser" :P
                          3. bei mir bewirkt das nicht nur die leerung der session des users, sondern (so scheint es) die leerung SÄMTLICHER sessions die auf dem server momentan angelegt sind...
                          4. Kann ich mir dies eh nicht erklären, denn die beiden sachen werden eigentlich nur abgerufen, wenn $a = 1 ist. Ich habe testweise mal $a = 0 gesetzt (immer) und dennoch wurden die sessions geleert...

                          Kommentar


                          • #14
                            3. und 4. deuten darauf hin, dass es nix mit deinen beiden geposteten Zeilen zu tun hat Springt er dennin die Abfrage, wenn $a = 1?
                            Nicht jeder Fehler ist ein Bug.

                            Kommentar

                            Lädt...
                            X