PHP: session_id() nem működik

Egy napja fennálló probléma, megoldást nem találtam még rá, segítsetek. A következő van:
A session_id(’1234566′); beállítja a sid-et a megadottra, ezután session_start-tal ergo “felkaphatunk” egy már meglévő sessiont. Lássunk rá egy tesztkódot:

      if (isset($_GET['destroy'])) { ## csak a játszásiból
            session_start();
            setcookie(session_name(), '', time()-42000, '/');
            session_destroy();
            exit;
      }
      if (isset($_GET['setsid'])) {
            session_id($_GET['setsid']);
            session_start();
            echo (session_id()==$_GET['setsid'] ? 'ugyanaz':'nem ugyanaz').'';
            if (!empty($_SESSION['test'])) {
                echo $_SESSION['test'];
            } else {
                echo 'nem mukodik.';
            }
            exit;
      }
      session_start();
      $_SESSION['test'] = 'test';
      echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?setsid='.session_id().'';
      echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?destroy';

Tehát indítok egy sessiont, test változóba test érték, majd kiíratom a linket, amit egy másik böngészőbe betéve “test” feliratnak kéne megjelenni. Ehelyett az jelenik meg, hogy ‘nem mukodik.’ A session id-t megkapja, az lesz, aminek kell lenni, de a $_SESSION mégis üres. A fenti script működik PHP 5.2.6 alatt (átkapja a sessiont a másik böngésző), de 5.2.10 alatt nem(üres a $_SESSION). A php.ini elvben egyezik a két verzióban.

Ötlet?

A bejegyzés kategóriája: Nincs kategorizálva
Kiemelt szavak: , , .
Közvetlen link.

PHP: session_id() nem működik bejegyzéshez 8 hozzászólás

  1. gphilip hozzászólása:

    5.2.9-cel és 5.2.5-tel működik…
    Fiddler?

  2. cadmagician hozzászólása:

    megnézem. köszi.

  3. cadmagician hozzászólása:

    kommunikácio jonak tuni.

    az még a tapasztalat, hogy ha a kukit törlöm, és ugyanabba a bööngészőbe adom be alinket, akkor felkapja, egyébként uj sessiont nyit. érthetetlen.

  4. cadmagician hozzászólása:

    suhosin.ini ahol a modot tolti be:

    suhosin.session.encrypt = On

    helyett

    suhosin.session.encrypt = Off

  5. feki hozzászólása:

    Én is szívtam ilyennel egy flash alapú fájlfeltöltőnél, ahol a sessionid-t postban kellett továbbítani, majd session_start()-nál megadni a postolt id-t és újra feláll a session.
    Na, de nem ment…nekem sem…azóta sincs rá megoldásom sajnos.
    Várom, hátha ide jön valami használható…

  6. csman007 hozzászólása:

    esetleg próbáld meg ugy, h hogy a session_start() helyett irj mindenhova @session_start() – ot

  7. cadmagician hozzászólása:

    a @ 99%ban varacskolás. de fentebb beírtam mi a megfejtés.

  8. sarki_roka hozzászólása:

    kódból? ini_set nem csinálja amit várok tőle. ellenben nekem ha session_id(…)-vel együtt (utána) hivom meg a session_start()-ot, akkor hiba nélkül 30 sec-es várakozás után visszaad semmit. ini_set-re rá se hederít

ITT és MOST VÁRJUK A HOZZÁSZÓLÁST!

Email cím (nem tesszük közzé) A kötelezően kitöltendő mezőket * karakterrel jelöljük

*

A következő HTML tag-ek és tulajdonságok használata engedélyezett: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>