There's a very simple solution. What you're looking for is "browser
branding". Randal Schwartz presents a very good example of this at his
column on web techniques.
http://www.stonehenge.com/merlyn/WebTechniques/col61.html

Basically, your issue is that each of the frames is a separate webpage,
meaning they are different threads of execution. So, they each need
their own session id. CGI::Session correctly identifies this. But, you
need to have both those session IDs correspond to the same user. So,
instead of a one-stage process, you need a two-stage process.

As for the 13,000 desktops ... what on earth does that have to do with
anything? Since this is a webapp, it lives on the server, right? So, it
could roll out to 13,000,000,000,000 desktops and you shouldn't care.

-----Original Message-----
From: Ron Savage [mailto:[EMAIL PROTECTED] 
Sent: Monday, July 05, 2004 12:11 AM
To: Perl - CGI-Application
Subject: Frames and CGI::Sessions

Hi Folks

I have a setup using CGI::App which starts like this in the HTML:
                <frame name="left"
src="http://127.0.0.1/cgi-bin/left.cgi";>
                <frame name="right"
src="http://127.0.0.1/cgi-bin/right.cgi";>

The frames have worked out superbly, despite the fact I normally
abstain from such practices... If a solution to the problem
below requires abandoning frames, then so be it, but I won't
abandon them lightly.

The 2 scripts are the same, just differing in the PARAMS:
My::Application -> new(PARAMS => {target => 'left'}) -> run();
My::Application -> new(PARAMS => {target => 'right'}) -> run();
                
The problem is that each script creates its own CGI::Session session,
so that when a user operating in the right frame sets options,
the session in the left frame is unaware of the changed options.

How do I let the left session become aware of the right session,
given the constaints:
o The code must run identically under Linux and Windows, so I'm
reluctant to adopt a solution requiring fork;
o The code is being rolled out to 13,000 desktops, which influences
how many people could theoretically start up the scripts at
more-or-less the same time. See below for a discussion of client IP
addresses, which would otherwise be pressed in to use here.

The reason IP addresses may not be enough to distinguish clients,
is that the last time I tested IP addresses via Apache's log (in
a different environment), all requests were logged with the (same)
router's IP address, rather than the client's IP address.

-- 
Ron Savage, [EMAIL PROTECTED] on 5/07/2004. Room EF 312
Deakin University, 221 Burwood Highway, Burwood, VIC 3125, Australia
Phone: +61-3-9251 7067, Fax: +61-3-9251 7604
http://www.deakin.edu.au/~rsav 
  
CONFIDENTIALITY NOTICE: The information in this electronic transmission and any 
documents accompanying it may contain confidential information belonging to the 
sender, which is legally privileged.  The information is intended only for the use of 
the individual or entities named above.  If you are not the intended recipient, you 
are hereby notified that any disclosure, copying, distribution or the taking of any 
action in reliance on the contents of this information is strictly prohibited.  If you 
have received this transmission in error, please destroy the message in its entirety. 

---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/[EMAIL PROTECTED]/
              http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to