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