Re: how to unset session variable when leaving page [message #174738 is a reply to message #174682] |
Fri, 01 July 2011 09:01 |
Martin
Messages: 8 Registered: October 2010
Karma:
|
Junior Member |
|
|
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 achieved it by calling a server-side
script when the web page is unloaded.
In the web page HTML i add an event handler for the body onunload
event:
<body onunload="endSession()">
A javascript function calls the script - use whatever method to call
the script that you are familiar with:
function endSession(){
// here call your server-side script, let's call it end_session.php
}
Finally end_session.php can simply unset your session variable:
<?php
unset $_SESSION['myVar'];
?>
Martin.
|
|
|