Re: how to unset session variable when leaving page [message #174739 is a reply to message #174737] |
Fri, 01 July 2011 09:36 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 6/30/2011 11:41 PM, Martin wrote:
> On Jun 27, 7:48 pm, Co<vonclausow...@gmail.com> wrote:
>> Hi All,
>>
>> I use a session variable to search for certain data in my records.
>> When a submit button is hit a session var gets filled with what I am
>> looking for.
>>
>> if(isset($_POST['listByq'])&& $_POST['listByq'] != "add") {
>> unset($_SESSION['listByq']);
>> unset($_SESSION['valueByq']);
>> $option = "";
>> $_SESSION['listByq'] = $_POST['listByq'];
>> if(isset($_POST['fname'])) { $_SESSION['valueByq'] =
>> $_POST['fname']; }
>> if(isset($_POST['country'])) { $_SESSION['valueByq'] =
>> $_POST['country']; }
>>
>> }
>>
>> If I browse to the next page but still using the same search query I
>> check again:
>>
>> // IF WE HAVE A SESSION THEN FILL $OPTION WITH A VALUE
>> if(isset($_SESSION['listByq'])) {
>> $option = $_SESSION['listByq'];
>> if ($option == "by_country") {
>> $country = $_SESSION['valueByq']; //$_POST['country'];
>>
>> $queryString = "WHERE country='$country' AND email_activated='1'";
>> $queryMsg = "Showing Members from the country you searched for";
>>
>> } else if ($option == "by_firstname") {
>>
>> $firstname = $_SESSION['valueByq']; //
>> $_POST['fname'];
>> $firstname = stripslashes($firstname);
>> $firstname = strip_tags($firstname);
>> $firstname = eregi_replace("`", "", $firstname);
>> $firstname = mysql_real_escape_string($firstname);
>> $queryString = "WHERE rank LIKE '%$firstname%' OR firstname LIKE '%
>> $firstname%' OR lastname LIKE '%$firstname%' AND email_activated='1'";
>> $queryMsg = "Showing Members with the name you searched for";
>>
>> } else if ($option == "newest_members") {
>>
>> $queryString = "WHERE email_activated='1' ORDER BY id DESC";
>> $queryMsg = "Showing Newest to Oldest Members";
>>
>> }
>> } // end of if(isset($_SESSION....
>>
>> This is all working like I want but when the user leaves the page and
>> returns later the session var is still
>> filled with the last search. I tried to clear the session var at the
>> beginning of the page but then when I browse
>> to the next page the session var will also be emptied.
>>
>> Is it possible to clear the session var when leaving the page?
>>
>> Marco
>
> I've had to do this before and simply added a body onunload event
> listener to the page:
>
> <body onunload="clearSession()">
>
> Calls a javascript function:
>
> function clearSession(){
> // here make a request to a PHP script called clear_session.php
> }
>
> Finally the clear_session.php script:
>
> <?php
> unset($_SESSION['myVar'];
> ?>
>
> Martin.
>
Which is not at all reliable. Better to code the server side properly.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|