note 85341 deleted from function.session-name by googleguy

From: Date: Wed, 16 Jan 2013 05:28:20 +0000
Subject: note 85341 deleted from function.session-name by googleguy
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-193089@lists.php.net to get a copy of this message
Note Submitter: xemc at yahoo dot com ---- Here's a sample program I made to explore the operation of the session stuff. One thing I wanted to do was switch sessions in the middle of a script - where session_name doesn't automatically create or resume the corresponding session id... (anyone have a better idea?) <?php if ( $_REQUEST['sname'] ) { session_name($_REQUEST['sname']); } session_start(); $messages = ""; function show( $str ) { global $messages; $messages .= $str; } function show_sess_vars() { foreach ( $_SESSION as $key => $val ) { show("Session var '$key': \t'$val'\n"); } } show("Session name: \t" . session_name() . "\n"); show("Session ID: \t" . session_id() . "\n"); foreach ( $_REQUEST as $key => $val ) { if ( $key == 'regenerate' ) { session_regenerate_id(); show("session_regenerate_id();\n"); show("Session name: \t" . session_name() . "\n"); show("Session ID: \t" . session_id() . "\n"); } else if ( $key == 'clear' ) { $_SESSION = array(); show("\$_SESSION = array();\n"); } else if ( $key == 'switch' ) { show("Will attempt to switch session name.. vars:\n"); show_sess_vars(); session_write_close(); $res = session_name($val); show("session_name($val) - res: $res\n"); session_start(); show("Session name: \t" . session_name() . "\n"); show("Session ID: \t" . session_id() . "\n"); } else if ( $key == 'switch2' ) { show("Will attempt to switch session name.. vars:\n"); show_sess_vars(); session_write_close(); show("session_write_close();\n"); $sess_id = $_COOKIE[$val]; if ( $sess_id ) { show("session '$val' exists, resuming..\n"); //unset($_SESSION); // to make sure - this should be reloaded below session_name( $val ); session_id( $sess_id ); session_start(); // fills $_SESSION from the named session } else { show("creating new session '$val'...\n"); session_name( $val ); session_start(); session_regenerate_id(); // create new (copy of old), leave old alone $_SESSION = array(); // wipe data clean for a fresh session show("regenerated ID and wiped SESSION superglobal\n"); } show("Session name: \t" . session_name() . "\n"); show("Session ID: \t" . session_id() . "\n"); } else { if ( $_COOKIE[$key] ) { show("Cookie: \t'$key': \t'$val'\n"); } else { show("Setting session var: \t'$key': \t'$val'\n"); $_SESSION[$key] = $val; } } } show("----\nSession vars:\n"); show_sess_vars(); if ( false ) { session_write_close(); session_name("edit_assembly"); session_start(); show("Session name: \t" . session_name() . "\n"); show("Session ID: \t" . session_id() . "\n"); show_sess_vars(); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title> PHP session testing </title> <style type='text/css'> body { background-color: gray; } #content { background-color: white; width: 70%; margin: 1em auto 1em auto; padding: 2em; font-family: Verdana, monospace; font-size: 10pt; } </style> </head> <body> <div id='content'> <h1> PHP session test: </h1> <pre><?php echo $messages; ?></pre> </div> </body> </html>

« previous php.notes (#193089) next »