Re: Re: SESSION variables: How much is too much?
| From: | Paul M Foster | Date: | Thu, 09 Jul 2009 01:05:28 +0000 |
| Subject: | Re: Re: SESSION variables: How much is too much? | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-295058@lists.php.net to get a copy of this message | ||
On Wed, Jul 08, 2009 at 06:55:24PM -0500, Shawn McKenzie wrote:
> D.M.Jackson wrote:
> > Thanks guys. I was just wondering if it was common practice to pass all
> > those variables in the SESSION object or if I was following a bad example
> > because it was the first time that I had seen so many variables passed this
> > way. If this is the typical way of handling this in php then I don't
> have a
> > problem with it, I just wanted to make sure that I wasn't getting off to a
> > bad start and picking up bad habits while learning php.
> >
> > Thanks,
> > Mark
>
> Again, it depends upon whether you "need" those variables in the next
> page for example. Think of a wizard, where you fill some values in a
> form, click next, fill more values, click next, etc and then click
> finish. You may want to pass the values from each page to the next via
> the session and ultimately have them all available in the last page.
> There are others ways to do this, such as adding them as hidden inputs
> in the next pages, but I personally would use sessions.
>
> One other example might be user info, id, username, firstname, lastname,
> current access role etc. You may use these on every page, so once you
> retrieve them from the db, you can store them in the session. Any other
> info like email, age, register date whatever, you can retrieve only when
> needed.
Just to provide a counterpoint to this, I would discourage using
$_SESSION for more than absolutely necessary. If I have a situation such
as Shawn mentions above, I pass values via hidden fields in the form.
Most of the forms I create are backed by a database, so mostly I capture
data from there. In addition, you can serialize data you wish to save
and store it in a database or hidden field, and then unserialize it upon
painting the next page.
If I'm not mistaken, there's a limit to the data which can be stored in
a session variable. I don't want to mistakenly hit that limit and wonder
what happened. And besides, I just think $_SESSION should be reserved
for *special* cases.
And, as mentioned before, it's worthwhile asking yourself if you
*really* need to remember a bunch of information from page to page. The
need to do so may well be a result of lazy programming habits.
Paul
--
Paul M. Foster