Re: Session breaks when form data submitted
| From: | Ray Hauge | Date: | Thu, 20 Jul 2006 14:22:33 +0000 |
| Subject: | Re: Session breaks when form data submitted | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-239629@lists.php.net to get a copy of this message | ||
On Thursday 20 July 2006 09:09, Jeffrey wrote:
> We have a site which requires users log in. Once they do so a session is
> created (session_start), some data is saved as session data,
> particularly data which identifies the user, their privileges, etc. If
> the session ends, breaks, etc. The user must log in again.
>
> There are also forms on the site. When a user submits a form, data, both
> posted and session, is saved to a MySQL database.
>
> If a session breaks when a user submits data via the form, the result is
> that the user must log in again, the data is lost and the user unhappy.
> This happens rarely - but when it does, it can upset the user who has
> put effort into completing the form.
>
> Is there a simple yet secure way of preventing this problem - for
> example passing the session id with the form and resurrecting the
> session if it has broken?
>
> Thanks,
>
> Jeff
To my knowledge, this particular behavior is by design. After the time limit
for a session has been reached, then the garbage collection will usually
clean it up. The only way to not break a session is to never clean up the
session files, or set the timeout to a day or so.
I wouldn't suggest sending the PHPSESSID via a form. That leads to people
being able to hijack sessions....
<from file='php.ini'>
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440
</from>
HTH
--
Ray Hauge
Programmer/Systems Administrator
American Student Loan Services
www.americanstudentloan.com
1.800.575.1099