Source of: example.shipping.2.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
  
// This script shows the user an HTMl receipt of their
  // purchase. It is bookmarkable and carries out no
  // database actions.
  // The user must be logged in to review a receipt.

  
include 'include.inc';

  
set_error_handler("errorHandler");

  function 
show_HTML_receipt($custID$orderID$connection)
  {
    
// Find customer information
    
$query "SELECT *
              FROM customer
              WHERE cust_id = 
$custID";
  
    if (!(
$result = @ mysql_query ($query$connection)))
       
showerror();
    
    
// There is only one matching row
    
$row = @ mysql_fetch_array($result);

    echo 
"\n<h1>Your order (reference # $custID - $orderID) " .
         
"has been dispatched</h1>\n";
  
    echo 
"Thank you " 
         
$row["title"] . " " 
         
$row["surname"] . ", " .
         
"your order has been completed and dispatched. " .
         
"Your order reference number is " 
         
$custID "-" 
         
$orderID 
         
". Please quote this number in any" .
         
" correspondence.<br>\n";
  
    echo 
"<p>If it existed, the order would have ".
         
"been shipped to: \n<br><b>" 
         
$row["title"] . " " 
         
$row["firstname"] . " " 
         
$row["initial"] . " " 
         
$row["surname"] . "\n<br>" 
         
$row["addressline1"] . "\n";
  
    if (
$row["addressline2"] != "")
       echo 
"\n<br>" 
            
$row["addressline2"];
  
    if (
$row["addressline3"] != "")
       echo 
"\n<br>" 
            
$row["addressline3"]; 
  
    echo 
"\n<br>" 
         
$row["city"] . " " 
         
$row["state"] . " " 
         
$row["zipcode"] . "\n<br>" 
         
$row["country"] . "</b>\n<br>\n<br>";
  
    echo 
"\n<p>We have billed your fictional credit card.";
  
    echo 
"\n<table border=0 width=50% cellpadding=0 cellspacing=5>\n" .
          
"\n<tr>" .
          
"\n\t<td><b>Quantity</b></td>\n" .
          
"\n\t<td><b>Wine</b></td>\n" .
          
"\n\t<td align=\"right\"><b>Unit Price</b></td>\n" .
          
"\n\t<td align=\"right\"><b>Total</b></td>\n" .
          
"\n</tr>";
  
    
$orderTotalPrice 0;
  
    
// list the particulars of each item in the order
    
$query "SELECT  i.qty, w.wine_name, i.price, 
                      w.wine_id, w.year, wi.winery_name
              FROM    items i, wine w, winery wi
              WHERE   i.cust_id = 
$custID
              AND     i.order_id = 
$orderID
              AND     i.wine_id = w.wine_id
              AND     w.winery_id = wi.winery_id
              ORDER BY item_id"
;
  
    if (!(
$result = @ mysql_query ($query$connection)))
       
showerror();

    
// Add each item to the email
    
while ($row = @ mysql_fetch_array($result)) 
    { 
      
// Work out the cost of this line item
      
$itemsPrice $row["qty"] * $row["price"];

      
$orderTotalPrice += $itemsPrice;
   
      
$wineDetail showWine($row["wine_id"], $connection);
  
      echo 
"\n<tr>" .
           
"\n\t<td>" $row["qty"] . "</td>" .
           
"\n\t<td>" showWine($row["wine_id"], $connection) . "</td>";
      
printf("\n\t<td align=\"right\">$%-.2f</td>"$row["price"]);
      
printf("\n\t<td align=\"right\">$%-.2f</td>"$itemsPrice);
      echo 
"\n</tr>\n";
    }

    echo 
"\n<tr></tr>" .
         
"\n<tr>\n\t<td colspan=2 align=\"left\"><i><b>Total of this order</b></td>" .
         
"\n\t<td></td>";
  
    
printf("\n\t<td align=\"right\">$<b><i>%-.2f</b></td>\n"$orderTotalPrice);

    echo 
"\n</tr>\n</table>";
  
    echo 
"\n<p><i>An email confirmation has been sent to you." .  
         
" Thank you for shopping at Hugh and Dave's Online Wines.</i>";
  }
  
  
// Main ----------
  
   // Re-establish the existing session
   
session_start();    
  
   
// Check if the user is logged in 
   
if (!session_is_registered("loginUsername"))
   {
      
session_register("message");
      
$message "You must login to view your receipt.";

      
// Redirect the browser back to the calling page
      
header("Location: example.order.1.php");
      exit;
   }      

   
// Check the correct parameters have been passed
   // unless the script is run correctly
   
if (!isset($custID) || !isset($orderID))
   {
      
session_register("message");

      
$message "Incorrect parameters to example.shipping.2.php";

      
header("Location: $HTTP_REFERER");
      exit;
   }      

   
// Check this customer matches the custID
   
if ($custID != getCustomerID($loginUsernameNULL))
   {
      
session_register("message");

      
$message "You can only view your own receipts!";
      
header("Location: example.order.1.php");
      exit;
   }

   
// Open a connection to the DBMS
   
if (!($connection = @ mysql_pconnect($hostName
                                      
$username
                                      
$password)))
      
showerror();

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

?>
<!DOCTYPE HTML PUBLIC 
   "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html401/loose.dtd">
<html>
<head>
  <title>Hugh and Dave's Online Wines</title>
</head>
<body bgcolor="white">
<?php
   
// Show the user login status
   
showLogin();

   
// Show the user any messages
   
showMessage();

   
// Show the confirmation HTML page
   
show_HTML_receipt($custID$orderID$connection);
?>
<form action="example.cart.5.php" method="GET">
<table>
<tr>
   <td><input type="submit" name="home" value="Home"></td>
</tr>   
</table>
</form>
<br><a href="http://validator.w3.org/check/referer"><img
     src="http://www.w3.org/Icons/valid-html401" height="31" width="88"
     align="right" border="0" alt="Valid HTML 4.01!"></a>
</body>
</html>


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