Hello! I’m learning php and have a form I’m working on with code I obtained from a great tutorial. The form is working great, but I’d like to edit it so that the Phone field not only validates with text in it, it will only validate if the entry is in the form of 000-000-0000. I need to be able to apply this to the code I already have.
Here is some code I have now that includes validation for the email field. How can I edit this so that it will apply what I need to the phone field. Thank you!
[php]<?php
// Set email variables
$email_to = ‘[email protected]’;
$email_subject = ‘Marketing Inquiry’;
// Set required fields
$required_fields = array(‘fullname’,‘address’,‘city’,‘state’,‘zip’,‘phone’,‘email’,‘comment’);
// set error messages
$error_messages = array(
‘fullname’ => ‘Please enter a Name to proceed.’,
‘address’ => ‘Please enter an Address to proceed.’,
‘city’ => ‘Please enter a City to proceed.’,
‘state’ => ‘Please enter a State to proceed.’,
‘zip’ => ‘Please enter a Valid Zip Code to proceed.’,
‘phone’ => ‘Please enter a Phone Number to proceed.’,
‘email’ => ‘Please enter a valid Email Address to continue.’,
‘comment’ => ‘Please enter your Message to continue.’
);
// Set form status
$form_complete = FALSE;
// configure validation array
$validation = array();
// check form submittal
if(!empty($_POST)) {
// Sanitise POST array
foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value));
// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {
// the field has been submitted?
if(!array_key_exists($field, $_POST)) array_push($validation, $field);
// check there is information in the field?
if($_POST[$field] == '') array_push($validation, $field);
// validate the email address supplied
if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field);
}
// basic validation result
if(count($validation) == 0) {
// Prepare our content string
$email_content = 'New Website Comment: ' . "\n\n";
// simple email content
foreach($_POST as $key => $value) {
if($key != 'submit') $email_content .= $key . ': ' . $value . "\n";
}
// if validation passed ok then send the email
mail($email_to, $email_subject, $email_content);
// Update form switch
$form_complete = TRUE;
}
}
function validate_email_address($email = FALSE) {
return (preg_match(’/^[^@\s]+@([-a-z0-9]+.)+[a-z]{2,}$/i’, $email))? TRUE : FALSE;
}
function remove_email_injection($field = FALSE) {
return (str_ireplace(array("\r", “\n”, “%0a”, “%0d”, “Content-Type:”, “bcc:”,“to:”,“cc:”), ‘’, $field));
}
?>[/php]