Source of: example.9-9.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

include 'db.inc';
include 
'error.inc';

function 
authenticateUser($connection
                          
$username,
                          
$password)
{
  
// Test that the username and password 
  // are both set and return false if not
  
if (!isset($username) || !isset($password))
    return 
false;

  
// Get the two character salt from the username
  
$salt substr($username02); 

  
// Encrypt the password
  
$crypted_password crypt($password$salt); 

  
// Formulate the SQL query find the user
  
$query "SELECT password FROM users 
               WHERE user_name = '
$username'
               AND password = '
$crypted_password'";

  
// Execute the query
  
$result = @ mysql_query ($query,
                           
$connection)
  or 
showerror();

  
// exactly one row? then we have found the user
  
if (mysql_num_rows($result) != 1
    return 
false;
  else
    return 
true;

}


// Main ----------

  
session_start();

  
$authenticated false;

  
// Clean the data collected from the user
  
$appUsername 
    
clean($HTTP_POST_VARS["formUsername"], 10);
  
$appPassword 
    
clean($HTTP_POST_VARS["formPassword"], 15);

  
// Connect to the MySQL server
  
$connection = @ mysql_connect($hostName,
                                
$username,
                                
$password
  or die(
"Cannot connect");

  if (!
mysql_selectdb($databaseName$connection))
     
showerror();

  
$authenticated authenticateUser($connection,
                                    
$appUsername,
                                    
$appPassword);

  if (
$authenticated == true
  {
    
// Register the customer id
    
session_register("authenticatedUser");
    
$authenticatedUser $appUsername;

    
// Register the remote IP address 
    
session_register("loginIpAddress");
    
$loginIpAddress $REMOTE_ADDR;
  }
  else
  {
    
// The authentication failed
    
session_register("loginMessage");
    
$loginMessage 
      
"Could not connect to the winestore " .
      
"database as \"$appUsername\"";
  }

  
// Relocate back to the login page
  
header("Location: example.9-8.php");
      
?>


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