For the following code blocks:



#---------- top.php              first program entered

session_start();
session_register  ('trackingnumber');

if (IsSet($trackingnumber)){
   print ("Issued session destroy because trackingnumber = 
$trackingnumber<br>");
   session_destroy();
   print ("trackingnumber = $trackingnumber<br>");
} else {
   print ("trackingnumber has not been set<br><br>");
}

print ("<html>");
print ("<head>");
print ("</head>");
print ("<body>");
print ("<h3>top.php is the entry point ...</h3>");
print ("<h3>This is the value of trackingnumber:  $trackingnumber<br><br>");
print ("<a href=\"middle.php\">To middle</a>");
print ("</body>");
print ("</html>");



#---------- middle.php                 second program entered

session_start();
session_register('trackingnumber');

if (!IsSet($trackingnumber)){
   $mtime = explode (" ",microtime());
   $mseconds = $mtime[0] * 1000000000;
   srand($mseconds);
   $trackingnumber = rand();
   print ("<h3>tracking number on input is: ".$trackingnumber."<br></h3>");
   print ("<h3>was reset<br><br></h3>");
} else {
   print ("<h3>tracking number on input is: ".$trackingnumber."<br></h3>");
   print ("<h3>was not reset<br><br></h3>");

}


$rnumber = 1234567;
print ("trackingnumber:  $trackingnumber<br>");
print ("rnumber:         $rnumber<br><br>");
print ("session name: ".session_name());
print ("<br>");
print ("session id:   ".session_id());
print ("<br>");

#----- check for the previous session's existance

print ("<html>");
print ("<head>");
print ("</head>");
print ("<body>");
print ("<h3>middle.php<br><br>This is the session id being passed to 
bottom: [");
print ("$trackingnumber");
print ("]</h3>");
print ("<a href=\"bottom.php?Session=$trackingnumber\">To bottom<br><br></a>");
print ("<a href=\"top.php\">To top</a>");
print ("</body>");
print ("</html>");



#---------- bottom.php         third program entered

session_start();

parse_str($QUERY_STRING);

print $Session;

print ("<html>");
print ("<head>");
print ("</head>");
print ("<body>");
print ("<h3>bottom.php<br><br>This is what was passed from middle: [");
print $Session;
print ("]</h3>");
print ("<a href=\"middle.php\">Back to middle</a>");
print ("</body>");
print ("</html>");


Entering program top.php, I check whether the variable $trackingnumber has 
been set. If so, I want to destroy its contents. $trackingnumber should be
empty upon entry to middle.php, where it gets set and passed to bottom.php. 
In traversing backwards, entry to top.php should empty the contents of
$trackingnumber. Why doesn't the session_destroy() perform that?

Bob

Reply via email to