[PHP] Expiring certain session data while keeping the session itself

2002-05-20 Thread Chris Knipe

Hiya, me again :-)

Is it possible to expire certain session data, while still keeping the
session itself in tact?

Example...

$_SESSION['AlwaysTrue'] = True;
$_SESSION['ExpireThis'] = 10:20:00;

At 10:19:50 the session is registered.  AlwaysTrue must remain True for as
long as the session itself is true (as specified in the documentation - this
would be until the browser is closed, or after a certain amount of inactive
time).

However, at 10:20:00 (10 seconds later), I want the ExpireThis value of the
session, to be destroyed, without having to de-register the entire session
(this would then also destroy the AlwaysTrue value...

Am I right in presuming this cannot be done, and I'll have to come up with
my own little function to do this with?  If so, how can I see at what time a
session variable was written, or would I need to register the time that the
session variable was set to the session as well?  For instance

$_SESSION['AlwaysTrue'] = True;
$_SESSION['ExpireThis'] = 10:20:00;
$_SESSION['ExpireThisTime'] = 10:19:50;

Then, just do a comparison, and if ExpireThisTime is past 10:20:00, then
just delete that one variable...

There's no easier / better way to do this ??

Basically, I'm needing something like this to bring down the number of
possible database queries.  I have a application which will have new
information in a database, every 75 seconds.  The queries are performed on
every single page that a user is logged in to on a site.  To make sure that
the same queries is not issued over and over on the database, I want to
implement some sort of caching where I will only need to do another query
after the database received new information (every 75 seconds).  It's all
numbers (integers), so I was thinking It may well work if I can save
these values to session data, and then just refresh the session data every
75 seconds  The problem is, there's lots of other information saved to
the session as well, which I cannot afford to loose with a possible
session_destroy()..

--
me




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




RE: [PHP] Expiring certain session data while keeping the session itself

2002-05-20 Thread Scott Hurring

What about something like this: (un-tested, just off the top
of my head)  It'll set a cookie the first time a user gets
to the page, and will then only re-load data every 75+ seconds
(from the time the user first loads data) -- and only updates
the cookie when data is re-loaded


if (date(U)  ($cookie_load+75)) {
print fetch from DB;
SetCookie(cookie_load, date(U));
}
else {
print Loaded ($cookie_load), now . date(U) . -- NOT
fetching\n;
}

if (!$cookie_load)
SetCookie(cookie_load, date(U));

---
Scott Hurring
Systems Programmer
EAC Corporation
[EMAIL PROTECTED]
Voice: 201-462-2149
Fax: 201-288-1515

 -Original Message-
 From: Chris Knipe [mailto:[EMAIL PROTECTED]]
 Sent: Monday, May 20, 2002 3:15 AM
 To: [EMAIL PROTECTED]
 Subject: [PHP] Expiring certain session data while keeping the session
 itself
 
 
 Hiya, me again :-)
 
 Is it possible to expire certain session data, while still keeping the
 session itself in tact?
 
 Example...
 
 $_SESSION['AlwaysTrue'] = True;
 $_SESSION['ExpireThis'] = 10:20:00;
 
 At 10:19:50 the session is registered.  AlwaysTrue must 
 remain True for as
 long as the session itself is true (as specified in the 
 documentation - this
 would be until the browser is closed, or after a certain 
 amount of inactive
 time).
 
 However, at 10:20:00 (10 seconds later), I want the 
 ExpireThis value of the
 session, to be destroyed, without having to de-register the 
 entire session
 (this would then also destroy the AlwaysTrue value...
 
 Am I right in presuming this cannot be done, and I'll have to 
 come up with
 my own little function to do this with?  If so, how can I see 
 at what time a
 session variable was written, or would I need to register the 
 time that the
 session variable was set to the session as well?  For instance
 
 $_SESSION['AlwaysTrue'] = True;
 $_SESSION['ExpireThis'] = 10:20:00;
 $_SESSION['ExpireThisTime'] = 10:19:50;
 
 Then, just do a comparison, and if ExpireThisTime is past 
 10:20:00, then
 just delete that one variable...
 
 There's no easier / better way to do this ??
 
 Basically, I'm needing something like this to bring down the number of
 possible database queries.  I have a application which will have new
 information in a database, every 75 seconds.  The queries are 
 performed on
 every single page that a user is logged in to on a site.  To 
 make sure that
 the same queries is not issued over and over on the database, 
 I want to
 implement some sort of caching where I will only need to do 
 another query
 after the database received new information (every 75 
 seconds).  It's all
 numbers (integers), so I was thinking It may well work if 
 I can save
 these values to session data, and then just refresh the 
 session data every
 75 seconds  The problem is, there's lots of other 
 information saved to
 the session as well, which I cannot afford to loose with a possible
 session_destroy()..
 
 --
 me
 
 
 
 
 -- 
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php