1, 'BC' => 1, 'MB' => 1, 'NB' => 1, 'NL' => 1, 'NS' => 1, 'NU' => 1, 'NT' => 1, 'ON' => 1, 'PE' => 1, 'QC' => 1, 'SK' => 1, 'YT' => 1, ); /* Define some field validation routines. THis should make validating data * simpler. All of these functions will return either an empty string in * the case of a failure or a string that is in the correct standardized * format. */ /* The generalized case. */ function verifyField($fieldType, $fieldValue) { /* There are only a select set of field types that we deal with. The * default case is to verify against a string */ if ($fieldType == "POSTAL") { return(verifyPostal($fieldValue)); } elseif ($fieldType == "PHONE") { return(verifyPhone($fieldValue)); } elseif ($fieldType == "BOOL") { return(verifyBool($fieldValue)); } elseif ($fieldType == "PROVINCE") { return(verifyProvince($fieldValue)); } elseif ($fieldType == "NUMERIC") { return(verifyNumeric($fieldValue)); } else { return(verifyString($fieldValue)); } } /* Validate a postal code */ function verifyPostal($fieldValue) { $newValue = ereg_replace("\s", "", $fieldValue); if (eregi("([a-z][0-9][a-z])([0-9][a-z][0-9])", $newValue, $regs)) { /* Postal code is in correct format */ $newValue = strtoupper("$regs[1] $regs[2]"); return($newValue); } /* Invalid postal code format */ return(''); } /* Validated a phone number */ function verifyPhone($fieldValue) { if (ereg("\(?(\d\d\d)\)?\s*-?\s*(\d\d\d)\s*-\s*(\d\d\d\d)", $fieldValue, $regs)) { /* Whu-hoo we have a phone number that looks something like a North * American Phone number */ $number = "$regs[1]-$regs[2]-$regs[3]"; /* Now see if we have an extensions */ if (eregi("(e|ext|x|extension)\.?\s*(\d+)", $fieldValue, $regs)) { /* Why yes we do have an extension */ $number .= " x. $regs[2]"; } /* Reutrn the newly formated number */ return($number); } /* Faield to find a valid number */ return(''); } /* Validate a boolean value */ function verifyBool($fieldValue) { /* If we are a one or zero then return that value */ if (ereg("^(0|1)", $fieldValue, $regs)) { return($regs[1]); } /* Otherwise we return values */ return(0); } /* Validate a porivnce field */ function verifyProvince($fieldValue) { /* See if the povince code is listed in the province lookup */ if (defined($PROVINCES[strtoupper($fieldValue)])) { return($fieldValue); } else { return(''); } } /* Validate a numeric field */ function verifyNumeric($fieldValue) { /* We need to verify that we have a valid numeric field */ if (ereg("(\+|-)?\d+(\.\d+)?", $fieldValue)) { /* Yes, yes we do */ return($fieldValue + 0); } /* not a valud number */ return(''); } /* Validate a string field */ function verifyString($fieldValue) { /* This is simple. Just return the string */ return($fieldValue); } ?>