Re: [PHP-DB] independent session data for multiple browser windows
On Feb 20, 2008, at 11:18 AM, Gary Wardell wrote: They'll be accessing different account records in different windows. I keep track of the current account id in the session data, as well as a number of other account-specific items. Once I was made aware of the multiple-window requirement, and started looking more closely at sessions, it seemed (from the PHP documentation) that I could start a new session, with a different name and id, and that would take care of it. In fact I CAN start sessions with independent names and ids, but their DATA doesn't seem to be completely independent. Assuming that they are interacting through forms on the pages in the different windows, why not put the UID of the record they are accessing in a hidden field in the form? Gary, Thanks for your reply. I'm beginning to think that that's what I'll have to do, although it will be a bit of work to convert. I'm surprised, though, that sessions aren't better in regards to data integrity. What I'm gathering from looking into this is that it's ok to use sessions, but you shouldn't count on reliable data from them. I don't remember seeing any caveats to that effect in the documentation on sessions, but that seems to be the case. Anyone know differently? Thanks. Charles Whitaker Technical Staff Open Door Networks
RE: [PHP-DB] independent session data for multiple browser windows
> > They'll be accessing different account records in different windows. > I keep track of the current account id in the session data, as well > as a number of other account-specific items. Once I was made > aware of > the multiple-window requirement, and started looking more closely at > sessions, it seemed (from the PHP documentation) that I could > start a > new session, with a different name and id, and that would take care > of it. In fact I CAN start sessions with independent names and ids, > but their DATA doesn't seem to be completely independent. > Assuming that they are interacting through forms on the pages in the different windows, why not put the UID of the record they are accessing in a hidden field in the form? Gary -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DB] independent session data for multiple browser windows
On Feb 16, 2008, at 1:31 AM, Tobias Franzén wrote: Charles Whitaker wrote: Greetings, I have a nearly-completed accounts/billing database using PHP and MySQL, and was just informed that users will want to access the database via multiple windows in one browser on the same machine, so I'm looking for a way to have each browser window have its own set of session data. As far as I know, the only way for this to work reliably is if your users can manually choose to open a new "session" in a new window/ tab. Is this the way you want it to work? Because you can't reliably stop them from having the same session in multiple windows if they would so choose. Tobias, Thanks for the reply. With one window in Safari open, and accessing the database, they just want to create a new window ("New Window" in Safari's File menu) and access the database from that window as well. On the other hand, why would you require multiple sessions if they are to work against the same database? ... What kind of information stored in the session would require them to use different sessions for different tabs? If you give us a hint, we might be better able to help. They'll be accessing different account records in different windows. I keep track of the current account id in the session data, as well as a number of other account-specific items. Once I was made aware of the multiple-window requirement, and started looking more closely at sessions, it seemed (from the PHP documentation) that I could start a new session, with a different name and id, and that would take care of it. In fact I CAN start sessions with independent names and ids, but their DATA doesn't seem to be completely independent. Charles Whitaker Technical Staff Open Door Networks
Re: [PHP-DB] independent session data for multiple browser windows
Charles Whitaker wrote: Greetings, I have a nearly-completed accounts/billing database using PHP and MySQL, and was just informed that users will want to access the database via multiple windows in one browser on the same machine, so I'm looking for a way to have each browser window have its own set of session data. I was initially using cookies, so I switched to propagating the session name via the URL, and had each window using a unique session name, but the DATA from each named session was written to the same file on disk (/private/var/tmp/whatever). I noticed that the session data file name included the session id, so I tried propagating the session id in the URL, and setting the session id right before session_start() -- that resulted in two data files on disk, but one session would occasionally write to the other session's data file. At this point, this is the code I'm trying: if (!array_key_exists('SESSION_ID', $_REQUEST)) { $_REQUEST['SESSION_ID'] = 'SESS'.uniqid(''); } session_name($_REQUEST['SESSION_ID']); session_id($_REQUEST['SESSION_ID']); session_start(); output_add_rewrite_var('SESSION_ID',$_REQUEST['SESSION_ID']); In php.ini, I now have: session.use_cookies = 0 session.use_only_cookies = 0 session.auto_start = 0 Also, I'm on Mac OS X Tiger, and everyone's using Safari. PHP 5.0.24a, MySQL 4.1.22 Any suggestions on how to have unique session data for multiple windows in the same browser on the same machine? Seems like it must be doable, but I haven't figured it out yet. Thanks to whomever can help. Charles Whitaker Technical Staff Open Door Networks As far as I know, the only way for this to work reliably is if your users can manually choose to open a new "session" in a new window/tab. Is this the way you want it to work? Because you can't reliably stop them from having the same session in multiple windows if they would so choose. On the other hand, why would you require multiple sessions if they are to work against the same database? Will they be using different user accounts to access it simultaneously, or some administration user with authorization proxy to use regular accounts? What kind of information stored in the session would require them to use different sessions for different tabs? If you give us a hint, we might be better able to help. /Tobias -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP-DB] independent session data for multiple browser windows
That just sounds like such recipe for disaster. What about running multiple divs with each data set in that 'window'? Then you could pass each datasets relevant ids along to keep thing separate... Another option could to create multiple [i]frames and do the same thing? Bastien> To: php-db@lists.php.net> From: [EMAIL PROTECTED]> Date: Fri, 15 Feb 2008 15:00:36 -0800> Subject: [PHP-DB] independent session data for multiple browser windows> > Greetings,> > I have a nearly-completed accounts/billing database using PHP and > MySQL, and was just informed that users will want to access the > database via multiple windows in one browser on the same machine, so > I'm looking for a way to have each browser window have its own set of > session data.> > I was initially using cookies, so I switched to propagating the > session name via the URL, and had each window using a unique session > name, but the DATA from each named session was written to the same > file on disk (/private/var/tmp/whatever).> > I noticed that the session data file name included the session id, so > I tried propagating the session id in the URL, and setting the > session id right before session_start() -- that resulted in two data > files on disk, but one session would occasionally write to the other > session's data file. At this point, this is the code I'm trying:> > if (!array_key_exists('SESSION_ID', $_REQUEST)) {> $_REQUEST['SESSION_ID'] = 'SESS'.uniqid('');> }> session_name($_REQUEST['SESSION_ID']);> session_id($_REQUEST['SESSION_ID']);> session_start();> output_add_rewrite_var('SESSION_ID',$_REQUEST['SESSION_ID']);> > In php.ini, I now have:> session.use_cookies = 0> session.use_only_cookies = 0> session.auto_start = 0> > Also, I'm on Mac OS X Tiger, and everyone's using Safari. PHP > 5.0.24a, MySQL 4.1.22> > Any suggestions on how to have unique session data for multiple > windows in the same browser on the same machine? Seems like it must > be doable, but I haven't figured it out yet. Thanks to whomever can > help.> > Charles Whitaker> Technical Staff> Open Door Networks> _