php - Form field length validation in phpmailer -
i want validate form fields minimum , maximum length.
i'm validating if if they're empty or if email address invalid. want add additional length requirements each field (min. length , max. length). best practice this?
excerpt process.php
file:
require_once('includes/phpmailer-config.php'); require_once('includes/phpmailer/class.phpmailer.php'); // other stuff here // validate each form field if (empty($name)) { $errors['name'] = mia_name; // error message missing name } if (empty($email)) { $errors['email'] = mia_addr; // error message missing email address } elseif (!(filter_var($email, filter_validate_email))) { $errors['email'] = inv_addr; // error message invalid email address } if (empty($message)) { $errors['message'] = mia_mesg; // error message missing message }
excerpt phpmailer-config.php
file:
// other stuff here define ('mia_name', 'a full name required.'); // error missing name define ('lg_name', {5,50}'); // min. length: 5, max. length: 50 define ('ts_name', 'name short.'); // error name short define ('tl_name', 'name long.'); // error name long define ('mia_addr', 'an email address required.'); // error missing email address define ('lg_addr', {8,50}'); // min. length: 8, max. length: 50 define ('ts_addr', 'email address short.'); // error email short define ('tl_addr', 'email address long.'); // error email long define ('inv_addr', 'we need valid email address.'); // error invalid email address define ('mia_mesg', 'a message required.'); // error message missing message define ('lg_mesg', {20,7500}'); // min. length: 20, max. length: 7500 define ('ts_mesg', 'message short.'); // error message short define ('tl_mesg', 'message long.'); // error message long
edit: here's ended using, amal's answer:
excerpt phpmailer-config.php
:
define ('mia_name', 'a full name required.'); // error missing name define ('min_name', 5); // min. length name define ('max_name', 50); // max. length name define ('ts_name', 'name short.'); // error name short define ('tl_name', 'name long.'); // error name long define ('mia_addr', 'an email address required.'); // error missing email address define ('min_addr', 8); // min. length email address define ('max_addr', 50); // max. length email address define ('ts_addr', 'email address short.'); // error email short define ('tl_addr', 'email address long.'); // error email long define ('inv_addr', 'we need valid email address.'); // error invalid email address define ('mia_mesg', 'a message required.'); // error message missing message define ('min_mesg', 20); // min. length message define ('max_mesg', 7500); // max. length message define ('ts_mesg', 'message short.'); // error message short define ('tl_mesg', 'message long.'); // error message long
excerpt process.php
:
// validate each form field if (empty($name)) { $errors['name'] = mia_name; } // missing name elseif (strlen(trim($_post['name'])) < min_name ) { $errors['name'] = ts_name; } // name short elseif (strlen(trim($_post['name'])) > max_name ) { $errors['name'] = tl_name; } // name long if (empty($email)) { $errors['email'] = mia_addr; } // missing email address elseif (strlen(trim($_post['email'])) < min_addr ) { $errors['email'] = ts_addr; } // email short elseif (strlen(trim($_post['email'])) > max_addr ) { $errors['email'] = tl_addr; } // email long elseif (!(filter_var($email, filter_validate_email))) { $errors['email'] = inv_addr; } // invalid email address if (empty($message)) { $errors['message'] = mia_mesg; } // missing message elseif (strlen(trim($_post['message'])) < min_mesg ) { $errors['message'] = ts_mesg; } // message short elseif (strlen(trim($_post['message'])) > max_mesg ) { $errors['message'] = tl_mesg; } // message long
in html5, can use pattern attribute, so:
<input pattern=".{5,25}" title="input 5 25 characters">
of course, isn't secure. you'll need validate inputs server-side, too.
you can use strlen()
length of input value, , use if
conditional statements check if they're within pre-defined length range.
$length = strlen(trim($_post['name'])); if ( $length >= 5 && $length <= 25) { # code... }
integrating current code, it'd like:
if (empty($name)) { $errors['name'] = mia_name; // error message missing name } if (strlen(trim($_post['name'])) >= 5) { # code ... } elseif (strlen(trim($_post['name'])) <= 25) { # code ... } if (empty($email)) { $errors['email'] = mia_addr; // error message missing email address } elseif (!(filter_var($email, filter_validate_email))) { $errors['email'] = inv_addr; // error message invalid email address } if (empty($message)) { $errors['message'] = mia_mesg; // error message missing message }
hope helps!
Comments
Post a Comment