Peter: PHP Session-ID

Moin zusammen!

Habe ein Loginscript erstellt. Die Session-ID wird in Cookies gespeichert. Sollte ein User cookies deaktiviert haben, wird die Session-ID per url übergeben. Soweit die Theorie!

Wenn ich nun im Browser cookies deaktiviere. Funktioniert der Login, aber die Session-ID (manuell angehängt!) wird nicht in der url übergeben!?!?!?

Weiss jemand woran es liegen könnte?

Danke! Gruss Peter

  1. Hallo Peter,

    Gib mal in jeder Seite $_SESSION und $_COOKIE aus.

    Gruß,

    Dieter

    1. Muss dazu sagen, ich hab session_set_save_handler benutzt und speicher die Session-Daten in einer Datenbank. Demnach gibt er mir bei beiden ein Array aus.

      1. Hallo Peter,

        Demnach gibt er mir bei beiden ein Array aus.

        print_r($_SESSION);

        Gruß,

        Dieter

        1. Hallo Dieter,
          erstmal Danke für die Bemühungen!
          Hier die Ausgaben:

          print_r($_SESSION):
          Array ( )

          und

          print_r($_COOKIE):
          Array ( [sid] => c25de2bb4eeb3ec9e7f7483d86a1578e )

          bei "Cookies deaktiviert" !!! Kann es mir nicht erklären!

          Gruss Peter

        2. Hallo Dieter,

          Bist Du mal Deine Sessioneinstellungen in der php.ini durchgegangen?

          Gruß,

          Dieter

          1. Ähm ja so ungefähr! Hier mal der Auszug aus der PHP.INI

            Directive Local Value Master Value
            session.auto_start Off Off
            session.bug_compat_42 Off Off
            session.bug_compat_warn Off Off
            session.cache_expire 180 180
            session.cache_limiter nocache nocache
            session.cookie_domain no value no value
            session.cookie_lifetime 600 600
            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 sid PHPSESSID
            session.referer_check no value no value
            session.save_handler user files
            session.save_path C:\www\sessiondata C:\www\sessiondata
            session.serialize_handler php php
            session.use_cookies On On
            session.use_only_cookies Off Off
            session.use_trans_sid Off Off

            1. Hallo Peter,

              Ähm ja so ungefähr! Hier mal der Auszug aus der PHP.INI

              Hast Du auch die Doku gelesen, insbesondere die von use_trans_sid?

              Gruß,

              Dieter

              1. Hast Du auch die Doku gelesen, insbesondere die von use_trans_sid?

                Hab ich, use_trans_sid sagt soweit ich weiss aus, dass die Parameterübergabe über die URL erlaubt ist.

                Mein Problem ist allerdings: Ich möchte die SessionID standardmäßig per cookie übergeben, falls ein User cookies deaktiviert hat, soll sie manuell hinter links angehängt werden (nicht automatisch).

                deswegen: $manuelleID = (SID == '') ? 'sid=0' : 'sid='.session_id();

                $manuelleID häng ich standardmäßig hinter jeden Link
                (<a href="seite.php<?php echo $manuelleID; ?>")

                1.Funktioniert es bei aktivierten cookies (UND SID=0 => ok)
                2.Funktioniert es bei deaktivierten cookies UND SID=0 => ???

                Wo holt sich die aufgerufene Seite -beicookies deaktiviert- denn die SID her, wenn nicht über die URL???

                Hab ich da irgendeinen Denkfehler drin?

                Schon mal Danke für die Bemühungen! :-)