Customer Validation
Example 17-1 lists the customer/validate.php script. It is based on Example 10-4 and has the same structure with four exceptions:
It validates a larger set of fields.
It manages the creation of digests from passwords and user account allocation.
It uses the includes/validate.inc include file, which contains general-purpose validation functions based on those in Chapter 9. The file is discussed in Chapter 16.
If the validation succeeds and the member isn't logged in, the user is authenticated and logged in using functions in includes/authenticate.inc, which is discussed in Chapter 20.
Example 17-1. The winestore customer validation script, customer/validate.php
<?php require_once "DB.php"; require_once "../includes/winestore.inc"; require_once "../includes/validate.inc"; require_once "../includes/authenticate.inc"; set_error_handler("customHandler"); session_start( ); $connection = DB::connect($dsn, true); if (DB::isError($connection)) trigger_error($connection->getMessage( ), E_USER_ERROR); // Clear and register an error array - just in case! $_SESSION["custErrors"] = array( ); // Set up a custFormVars array for the POST variables $_SESSION["custFormVars"] = array( ); // Clean and load the POST variables foreach($_POST as $varname => $value) $_SESSION["custFormVars"]["{$varname}"] = pearclean($_POST, $varname, 50, $connection); // Validate the firstname checkMandatory("firstname", "first name", "custErrors", "custFormVars"); // Validate the Surname checkMandatory("surname", ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access