RE: Adding values to Session file

2000-08-18 Thread Jerrad Pierce



Not 
with so little information...

Afew ideas though:

 I assume you are speaking of 
Apache::Session?
 Are you adding values lower than the 
top level? The man page clearly states no deep checking is done to determine if 
modifications have been made...
 Have you tried explicitly 
untie'ing?

  -Original Message-From: Differentiated Software 
  Solutions Pvt. Ltd [mailto:[EMAIL PROTECTED]]Sent: Friday, August 18, 
  2000 9:04 AMTo: [EMAIL PROTECTED]Subject: Adding values 
  to Session file
  Hi,
  
  We have a site where we create a session file on 
  login and tie some values.
  After a few page visits we want to add more 
  values to the session file again using tie.
  
  We find that only the first set of values get 
  added. Subsequent values do not get added to this file.
  Can somebody tell us what the problem is 
  ??
  
  Regards,
  
  Murali
  
  Differentiated Software Solutions Pvt. 
  Ltd.176, Ground Floor, 6th Main,2nd Block, RT NagarBangalore - 
  560032Phone : 91 80 3431470www.diffs-india.com


Re: Adding values to Session file

2000-08-18 Thread Bogomolnyi Constantin



Hello , 
Your problem is an classic example of an incorrect 
implementation of tie function 
In fact the session acts like this :
1)You tie your hash (INDIRECTLY linket to the 
database)
2)You put your data in the hash but it still in memory because 
it is quite stupid and slow to put
it directly in the database ( each time you acces the tied 
hash it doesn't make an SELECT from the database)
So if you stop at this point you loose all your data in memory 
witch is normal 
So you need the step 3)
3) UNTIE you tied hash to ensure the syncronisation between 
your hash in memory and the database 
Under apache::registry there is an very usefull thing the 
register_cleanup method witch have an advantage 
it is executed after EACH request this is an equivalent to END 
block in plain cgi , this protect you against 
STOP ou RELOAD actions : 
Lets put it in shape:
I suppose that you use Apache::Session module 

1)
eval {tie %session, 
'Apache::Session::MySQL', $id, { 
DataSource = 
'dbi:mysql:sessions',UserName 
= 
'user',Password 
= 
'password',
LockDataSource 
= 'dbi:mysql:sessions', 
LockUserName = 
'user', 
LockPassword = 
'password'}}; #you can deal with 
exceptions at this point if you want
#we have our hash tied
2)
#lets put some data
$session{data}='data';
3)
#syncronise the whole thing 
$r-register_cleanup( 
sub{ 
untie %session;#syncronise the session hash
 
#put hereall close statements to your database handlers ( if you need that 
)  } );


  - Original Message - 
  From: 
  Differentiated Software 
  Solutions Pvt. Ltd 
  To: [EMAIL PROTECTED] 
  Sent: Friday, August 18, 2000 3:04 
  PM
  Subject: Adding values to Session 
  file
  
  Hi,
  
  We have a site where we create a session file on 
  login and tie some values.
  After a few page visits we want to add more 
  values to the session file again using tie.
  
  We find that only the first set of values get 
  added. Subsequent values do not get added to this file.
  Can somebody tell us what the problem is 
  ??
  
  Regards,
  
  Murali
  
  Differentiated Software Solutions Pvt. 
  Ltd.176, Ground Floor, 6th Main,2nd Block, RT NagarBangalore - 
  560032Phone : 91 80 3431470www.diffs-india.com