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