Source of: ../Wda42/example.9-11.php

<?php
/*
Source code example for Web Database Applications

Unless otherwise stated, the source code distributed with this book can be
redistributed in source or binary form so long as an acknowledgment appears
in derived source files.
The citation should list that the code comes from Hugh E.
Williams and David Lane, "Web Database Application with PHP and MySQL"
published by O'Reilly & Associates.
This code is under copyright and cannot be included in any other book,
publication, or educational product without permission from O'Reilly &
Associates.
No warranty is attached; we cannot take responsibility for errors or fitness
for use.
*/
?>
<?php
  
  session_start
();

  
$loginScript "example.9-8.php";

  
// Set a boolean flag to check if 
  // a user has authenticated
  
$notAuthenticated = !isset($_SESSION["authenticatedUser"]);

  
// Set a boolean flag to true if this request
  // originated from the same IP address
  // as the one that created this session
  
$notLoginIp = isset($_SESSION["loginIpAddress"]) && ($_SESSION["loginIpAddress"] != $_SERVER["REMOTE_ADDR"]);

  
// Check that the two flags are false
  
if($notAuthenticated)
  {
    
// The request does not identify a session
    
session_register("loginMessage");
    
$_SESSION["loginMessage"] = "You have not been authorized to access the " .
                                
"URL {$_SERVER["REQUEST_URI"]}";

    
// Re-locate back to the Login page
    
header("Location: " $loginScript);
    exit;
  }
  else if(
$notLoginIp)
  {
    
// The request did not originate from the machine
    // that was used to create the session. 
    // THIS IS POSSIBLY A SESSION HIJACK ATTEMPT

    
session_register("loginMessage");
    
$_SESSION["loginMessage"] = "You have not been authorized to access the " .
      
"URL {$_SERVER["REQUEST_URI"]} from the address {$_SERVER["REMOTE_ADDR"]}";

    
// Re-locate back to the Login page
    
header("Location: " $loginScript);
    exit;
  }

?>


© 2000--2001 Hugh E. Williams and David Lane.
Valid HTML 4.01!