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 #174738 is a reply to message #174682] Fri, 01 July 2011 09:01 Go 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 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.
[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: Wed Nov 27 15:14:51 GMT 2024

Total time taken to generate the page: 0.03297 seconds