Order Case Study Brochure
'.$status.''; unset($_SESSION['status'], $status); $_SESSION['submitted'] = false; } else { ?>* These fields are mandatory.
- >
- >
- >
- >
- >
- >
- >
array( 'required' => true, 'label' => 'name', 'max-length' => '50', 'min-length' => '3', 'custom' => 'validateName' ), 'job' => array( 'required' => true, 'label' => 'job title', 'max-length' => '50', 'min-length' => '2' ), 'company' => array( 'required' => true, 'label' => 'company', 'max-length' => '50', 'min-length' => '2' ), 'address' => array( 'required' => true, 'label' => 'address', 'max-length' => '100', 'min-length' => '10' ), 'postcode' => array( 'required' => true, 'label' => 'postcode', 'custom' => 'validatePostcode' ), 'phone' => array( 'required' => true, 'label' => 'phone number', 'custom' => 'validateTelephone' ), 'email' => array( 'required' => true, 'label' => 'email address', 'custom' => 'validateEmail' ) ); $errors = array(); if( !isset($_SESSION['submitted']) ) { $_SESSION['submitted'] = false; } if( isset($request['submit']) ) { // Just check no one has tinkered with the field names before submitting... $haveFields = true; foreach( $fields as $field => $rules ) { if( !isset($request[$field]) ) { $haveFields = false; } else { // Will create variables $name, $job, $company, $address etc. $fields[$field]['data'] = trim($request[$field]); } } // If everything is cool, validate the data if( $haveFields ) { $result = validateData($fields); // If there are no errors... if( $result ) { $subject = 'JAC Project Porfolio Request'; $message = 'The following details have been submitted from the jac-group website:'."\r\n\r\n"; foreach( $fields as $key => $val ) { $message .= ucwords($key).':'."\r\n".$val['data']."\r\n\r\n"; } $headers = 'From: noreply@jac-group.co.uk'; $result = sendEnquiry($recipient, $subject, $message, $headers); $_SESSION['status'] = $result; $_SESSION['submitted'] = true; header('Location: .'.( $ajax ? '?ajax=true' : '' )); exit(); } } } function validateData($fields) { $result = true; foreach( $fields as $field => $rules ) { $e = false; // Error number $v = $rules['data']; // Empty field input if( isset($rules['required']) && empty($v) ) { $e = 0; } // Field input too long else if( isset($rules['max-length']) && (strlen($v) > $rules['max-length']) ) { $e = 1; } // Field input too short else if( isset($rules['min-length']) && (strlen($v) < $rules['min-length']) ) { $e = 2; } // Process custom validation function else if( isset($rules['custom']) ) { $r = call_user_func($rules['custom'], $v); if( $r !== true ) { $e = $r; } } if( $e !== false ) { processErrorMsg( $e, $field, $rules['label'] ); $result = false; } } return $result; } function validateName($val) { $result = preg_match('/^[a-zA-Z\s\'\-\,\.\"\'\(\)]+$/', $val); return ( !$result ) ? 3 : true; } function validateTelephone($val) { $result = preg_match('/^[\d\-\(\)\+\s]+$/', $val); return ( !$result ) ? 3 : true; } function validatePostcode($val) { $result = preg_match('/(^gir\s0aa$)|(^[a-pr-uwyz]((\d{1,2})|([a-hk-y]\d{1,2})|(\d[a-hjks-uw])|([a-hk-y]\d[abehmnprv-y]))\s\d[abd-hjlnp-uw-z]{2}$)/i', $val); return ( !$result ) ? 3 : true; } function validateEmail($val) { $result = preg_match('/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/i', $val); return ( !$result ) ? 3 : true; } function processErrorMsg( $err, $fieldName, $label ) { global $errors; switch( $err ) { case 0: $errors[$fieldName] = 'Your '.ucwords($label).': Please complete this field.'; break; case 1: $errors[$fieldName] = 'Your '.ucwords($label).': This field contains too many characters.'; break; case 2: $errors[$fieldName] = 'Your '.ucwords($label).': This field contains too few characters.'; break; case 3: $errors[$fieldName] = 'Your '.ucwords($label).': This field contains invalid characters.'; default: } } function sendEnquiry($recipient, $subject, $message, $headers) { return mail($recipient, $subject, $message, $headers); } if ( !$ajax ) { ?>


* These fields are mandatory.