achja... session prob

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

  • achja... session prob

    gähn
    sorry euch zu langweilen, bitte um session hilfe.

    auf einer login-seite werden die vars
    PHP-Code:
    session_start();
    $_SESSION['s_username']
    $_SESSION['s_zeit'
    definiert, auf den folgeseiten abgefragt.

    die loginseite ist
    www.domain1.de/login.php
    die folgeseite
    www.domain1.de/folgeseite1.php
    und alles funktioniert wunderbar,
    auch mit den folgeseiten 2-99.

    die sessiondaten werden nur per cookie übergeben,
    DAS SOLL SO SEIN, hab ich mir nicht ausgesucht.

    nun solls eine zweite loginseite geben, von einer andern domain (gleicher server), ansonsten identisches skript

    also von
    www.domainZWEI.de/login.php
    nach www.domain1.de/folgeseiten

    das geht nicht mit cookie, also wird hier ausnahmsweise
    mit
    PHP-Code:
    $sessvar=session_name()."=".session_id();
    <
    a href=\"http://domain1.de/folgeseite1.php?".$sessvar."\"> 
    die session übergeben.

    das geht auch. sobald ich aber von folgeseite1 auf folgeseite 2
    weiter gehe, die session also wieder per cookie übergebe,
    sind die vars $_SESSION['s_username'] usw verloren.

    warum?

    also:
    Domain1.de/login.php->Domain1.de/folgeseite1.php->Domain1.de/folgeseite2...
    per Cookie : OK
    DomainZWEI.de/login.php->Domain1.de/folgeseite1.php
    per GET : OK
    DomainZWEI.de/login.php->Domain1.de/folgeseite1.php->Domain1.de/folgeseite2
    per GET: OK und dann per Cookie : FEHLER

    is schon spät, versteht mich jemand?

    phpinfo sagt übrigens:
    session.auto_start Off Off
    session.cookie_domain no value no value
    session.cookie_lifetime 0 0
    session.use_cookies On On
    session.use_only_cookies Off Off
    session.use_trans_sid Off Off

  • #2
    sids überprüft?

    Kommentar


    • #3
      Re: achja... session prob

      Original geschrieben von mata
      sobald ich aber von folgeseite1 auf folgeseite 2 weiter gehe, die session also wieder per cookie übergebe, sind die vars $_SESSION['s_username'] usw verloren.
      ich habe zweifel an deinem "also" - wird überhaupt ein neuer session-cookie gesetzt in diesem falle?

      ich denke eher nein - PHP hat gemerkt, dass es die SID per GET übergeben bekommen hat, es geht also davon aus, dass die übergabe per cookie nicht geklappt hat. es gibt also keinen grund mehr, erneut zu versuchen, einen keks zu setzen.

      eine möglichkeit wäre es, den session-cookie auf folgeseite1 selber zu setzen - welche daten da genau reingehören, kann man ja herausfinden - damit dieser auf folgeseite2 wieder verfügbar ist.


      (evtl. wäre es auch möglich, PHP per session_regenerate_id zum setzen eines neuen session cookies zu überreden - könnte aber auch sein, dass es dann wieder so ist wie oben, dass PHP bereits der meinung ist, das würde nicht klappen.)
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        würgaround:

        session als &SIDx=sid übertragen und dann session auf dem neuen server unter dieser id starten.

        Kommentar


        • #5
          @tobiaz
          meintest du so?:

          (folgeseite1):
          PHP-Code:
          session_id($_GET[PHPSESSID]);
          session_start(); 
          jetzt sind alle sessionvars vorhanden... sobald ich
          zu folgeseite2 wechsle sindse aber wieder weg.
          das geht schonmal nicht

          @wahsaga:
          PHP hat gemerkt, dass es die SID per GET übergeben bekommen hat, es geht also davon aus, dass die übergabe per cookie nicht geklappt hat.
          scheint so. sowas macht php?
          ich wusste zwar, dass bei cookieübergabe keine sid generiert wird,
          aber das umgekehrt per GET die cookies ignoriert werden...
          naja, jetzt wo ichs so lese, eigentlich naheliegend.

          mit session_regenerate_id() ändert sich nix, wie schon vermutet.

          eine möglichkeit wäre es, den session-cookie auf folgeseite1 selber zu setzen - welche daten da genau reingehören, kann man ja herausfinden - damit dieser auf folgeseite2 wieder verfügbar ist.
          PHP-Code:
          setcookie(session_name(), session_id()); 
          das wäre dann also der würgaround?!
          zumindest auf dem testserver läufts, morgen weiss ich mehr.
          dank euch.

          Kommentar


          • #6
            meintest du so?:
            Nein, eben gerade das nicht (s. wahsaga)

            PHP-Code:
            session_id($_GET['irgendeinnamedernichtdersessionnameist']); 
            So meine ich.

            Kommentar

            Lädt...
            X