After talking with some folks on IRC, it sounds like this is effectively impossible??
I'd just like to check -- is it really impossible in PHP to copy a variable from one session to another? I don't mind subtle trickery. Thanks, - Scott On Fri, 9 Apr 2004 02:37:05 -0700 (PDT) "Scott Bronson" <[EMAIL PROTECTED]> wrote: > My web site currently uses 2 sessions: mine ("SBSESSID") and > SquirrelMail's ("SQMSESSID"). They work perfectly on their own. > However, I would like to allow the user to move from my area to > SquirrelMail without re-entering a password. Therefore, I need to copy > the password from my session to SquirrelMail's. I've been struggling with > this for most of the night but this is the closest I've come: > > tst.php: > > <?php > error_reporting(E_NONE); // suppress spurious cookie errors > header("content-type: text/plain"); > > /// set up original session, then close it > session_name("SESS1"); > session_start(); > print_r(session_name()); > echo " " . print_r($_SESSION,true) . "\n"; > session_write_close(); > session_unset(); > > // print new session, retrieve secret key, then close it. > session_name("SESS2"); > session_start(); > print_r(session_name()); > echo " " . print_r($_SESSION,true) . "\n"; > $secret = $_SESSION['password']; > session_write_close(); > session_unset(); > > // open old session. it should exactly match the original. > session_name("SESS1"); > session_start(); > print_r(session_name()); > echo " " . print_r($_SESSION,true) . "\n"; > ?> > > > When I run this after filling in the sessions, I get: > > SESS1 Array > ( > [squirrel] => mail > ) > > SESS2 Array > ( > [squirrel] => mail > ) > > SESS1 Array > ( > [squirrel] => mail > ) > > What's happening? The second time I call session_start(), instead of > getting SESS2 like I asked for, I'm just getting SESS1 again. Even if I > call error_reporting(E_ALL), I don't get any relevant error messages. Why > won't session_start() open the named session? > > When I replace the two calls to session_write_close() with > session_destroy(), I get this: > > SESS1 Array > ( > [squirrel] => mail > ) > > SESS2 Array > ( > [password] => whoa > ) > > SESS1 Array > ( > ) > > Which is correct, except that it destroys the sessions! So close and yet > so far. > > Does anybody know how I can do this? I'm stumped. Thanks! > > - Scott > > > To duplicate exactly what I did here, create 2 more scripts: > > s1.php: > > <?php > session_name("SESS1"); > session_start(); > $_SESSION["squirrel"] = "mail"; > print_r($_SESSION); > ?> > > > s2.php: > > <?php > session_name("SESS2"); > session_start(); > $_SESSION["password"] = "whoa"; > print_r($_SESSION); > ?> > > Now, open s1.php in your web browser. Then open s2. php. Finally, open > tst.php. > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php