PHP

Overview of the Winestore Application

The winestore application was developed to meet the requirements outlined in tutorial 1. It has four separate modules that we discuss in this and the next three tutorials:

Customer management

Becoming a member, amending membership details, logging in, and logging out. The scripts that implement this functionality are in this tutorial. The web database application techniques illustrated include querying and writing data, sessions, post validation, batch error reporting, encryption of passwords, receipt pages to avoid the reload problem, and managing user authentication.

Shopping cart

Adding wines to a shopping cart, deleting items from the cart, adjusting quantities, and emptying the cart. The shopping cart is discussed in tutorial 11.

Ordering and shipping

Processing the cart so that it becomes an order, confirming shipping details by email, and confirming shipping details with an HTML receipt. These scripts are the subject of tutorial 12.

Browsing and searching

Searching and browsing the wines. The searching and browsing module is briefly outlined in tutorial 13, along with related topics.


Table 10-1. The winestore scripts, filenames, and functions

Script Filename Function
cart.1 example.cart.1.php Home page and Hot New Wines panel
cart.2 example.cart.2.php Cart contents view
cart.3 example.cart.3.php Add to cart
cart.4 example.cart.4.php Empty cart
cart.5 example.cart.5.php Manage redirection
cart.6 example.cart.6.php Update cart quantities
customer.1 example.customer.1.php Validate and update customer
customer.2 example.customer.2php Customer entry <form>
customer.3 example.customer.3.php Customer receipt
order.1 example.order.1.php Log in
order.2 example.order.2.php Log out
order.3 example.order.3.php Finalize order
shipping.1 example.shipping.1.php Email order confirmation
shipping.2 example.shipping.2.php Order receipt
search.1 example.search.1.php Browse and search wines
include.inc include.inc Common functionality
db.inc db.inc DBMS parameters
error.inc error.inc Custom error handler