Source of: ../Wda42/example.8-4.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
  
include 'db.inc';
  include 
'error.inc';
  
  
// Initialize a session
  
session_start();
  
  
// Register an error array - just in case!
  
if (!session_is_registered("errors"))
     
session_register("errors");
  
  
// Clear any errors that might have been 
  // found previously
  
$errors = array();
  
  
// Set up a $formVars array with the POST variables
  // and register with the session.
  
if (!session_is_registered("formVars"))
     
session_register("formVars");
  
  foreach(
$_POST as $varname => $value)
      
$formVars[$varname] = trim(clean($value50));

  
$_SESSION["formVars"] = $formVars;

  
// Is CustID a session variable? If so, initialise
  
if (session_is_registered("custID"))
     
$custID $_SESSION["custID"];
  
  
// Validate the firstName
  
if (empty($formVars["firstName"])) 
      
// First name cannot be a null string
      
$errors["firstName"] = 
          
"The first name field cannot be blank.";
    
  
// Validate the Surname
  
if (empty($formVars["surname"]))
      
// the user's surname cannot be a null string
      
$errors["surname"] = 
          
"The surname field cannot be blank.";
  
  
// Validate the Address
  
if (empty($formVars["address1"]))
      
// all the fields of the address cannot be null
      
$errors["address"] = 
          
"You must supply at least one address line.";
  
  
// Validate the City
  
if (empty($formVars["city"]))
      
// the user's city cannot be a null string
      
$errors["city"] = "You must supply a city.";
  
  
// Validate Date of Birth
  
if (empty($formVars["dob"]))
      
// the user's date of birth cannot be a null string
      
$errors["dob"] = "You must supply a date of birth.";
  
  elseif (!
ereg("^([0-9]{2})/([0-9]{2})/([0-9]{4})$"$formVars["dob"], $parts))
      
// Check the format
      
$errors["dob"] = 
      
"The date of birth is not a valid date in the format DD/MM/YYYY";  
  
  if (empty(
$formVars["email"])) 
      
// the user's email cannot be a null string
      
$errors["email"] = "You must supply an email address.";
  
  
// Now the script has finished the validation, 
  // check if there were any errors
  
if (count($errors))
  {
      
// Store the errors in the session variable
      
$_SESSION["errors"] = $errors;

      
// There are errors.  Relocate back to the client form
      
header("Location: example.8-5.php");
      exit;
  }

  
// If we made it here, then the data is valid

  
if (!($connection = @ mysql_pconnect($hostName
                                       
$username
                                       
$password)))
     
showerror();

  if (!
mysql_select_db($databaseName$connection))
     
showerror();
     
  
// Reassemble the date of birth into database format
  
$dob " \"$parts[3]-$parts[2]-$parts[1]\"";
  
  
// Is this an update?
  
if (!empty($custID))
  {
     
$query "UPDATE customer SET "
       
"surname = \"" $formVars["surname"] . "\", " .
       
"firstname = \"" $formVars["firstName"] . "\", " .
       
"addressline1 = \"" $formVars["address1"] . "\", " .
       
"city = \"" $formVars["city"] . "\", " .
       
"email = \"" $formVars["email"] . "\", " .
       
"birth_date = " $dob 
       
" WHERE cust_id = $custID";
  }
  else
     
// Create a query to insert the customer
     
$query "INSERT INTO customer
       set cust_id = NULL, " 
.
       
"surname = \"" $formVars["surname"] . "\", " .
       
"firstname = \"" $formVars["firstName"] . "\", " .                    
       
"addressline1 = \"" $formVars["address1"] . "\", " .
       
"city = \"" $formVars["city"] . "\", " .
       
"email = \"" $formVars["email"] . "\", " .
       
"birth_date = $dob";

  
// Run the query on the customer table
  
if (!(@ mysql_query ($query$connection)))
     
showerror();   

  
// Is this an insert?
  
if (empty($custID))
     
// Find out the cust_id of the new customer
     
$custID mysql_insert_id();

  
// Clear the session 
  
session_destroy();
  
  
// Now show the customer receipt
  
header("Location: customer_receipt.php?custID=$custID");

?>


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