FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » how to unset session variable when leaving page
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: how to unset session variable when leaving page [message #174737 is a reply to message #174682] Fri, 01 July 2011 03:41 Go to previous messageGo to previous message
Martin is currently offline  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 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.
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: debugging with NetBeans
Next Topic: barcode reader integration in web application
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Thu Nov 07 06:29:11 GMT 2024

Total time taken to generate the page: 0.04477 seconds