Note that there are some explanatory texts on larger screens.

plurals
  1. POForm field length validation in phpmailer
    primarykey
    data
    text
    <p>I want to validate form fields by minimum and maximum length.</p> <p>I'm already validating if if they're empty or if the email address is invalid. I want to add additional length requirements to each field (min. length and max. length). What would be best practice for this?</p> <p>excerpt from my <code>process.php</code> file:</p> <pre><code>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 for missing name } if (empty($email)) { $errors['email'] = MIA_ADDR; // Error message for missing email address } elseif (!(filter_var($email, FILTER_VALIDATE_EMAIL))) { $errors['email'] = INV_ADDR; // Error message for invalid email address } if (empty($message)) { $errors['message'] = MIA_MESG; // Error message for missing message } </code></pre> <p>excerpt from my <code>phpmailer-config.php</code> file:</p> <pre><code>// other stuff here define ('MIA_NAME', 'A Full Name is Required.'); // Error for missing name define ('LG_NAME', {5,50}'); // Min. length: 5, Max. length: 50 define ('TS_NAME', 'Name is too Short.'); // Error for name too short define ('TL_NAME', 'Name is too Long.'); // Error for name too long define ('MIA_ADDR', 'An Email Address is Required.'); // Error for missing email address define ('LG_ADDR', {8,50}'); // Min. length: 8, Max. length: 50 define ('TS_ADDR', 'Email Address is too Short.'); // Error for email too short define ('TL_ADDR', 'Email Address is too Long.'); // Error for email too long define ('INV_ADDR', 'We need a valid email address.'); // Error for invalid email address define ('MIA_MESG', 'A Message is Required.'); // Error message for missing message define ('LG_MESG', {20,7500}'); // Min. length: 20, Max. length: 7500 define ('TS_MESG', 'Message is too Short.'); // Error for message too short define ('TL_MESG', 'Message is too Long.'); // Error for message too long </code></pre> <p><hr> <br/><br/><br/><br/></p> <p><strong>Edit:</strong> Here's what I ended up using, thanks to Amal's answer:</p> <p>Excerpt from <code>phpmailer-config.php</code>:</p> <pre><code>define ('MIA_NAME', 'A Full Name is Required.'); // Error for missing name define ('MIN_NAME', 5); // Min. length for name define ('MAX_NAME', 50); // Max. length for name define ('TS_NAME', 'Name is too Short.'); // Error for name too short define ('TL_NAME', 'Name is too Long.'); // Error for name too long define ('MIA_ADDR', 'An Email Address is Required.'); // Error for missing email address define ('MIN_ADDR', 8); // Min. length for email address define ('MAX_ADDR', 50); // Max. length for email address define ('TS_ADDR', 'Email Address is too Short.'); // Error for email too short define ('TL_ADDR', 'Email Address is too Long.'); // Error for email too long define ('INV_ADDR', 'We need a valid email address.'); // Error for invalid email address define ('MIA_MESG', 'A Message is Required.'); // Error message for missing message define ('MIN_MESG', 20); // Min. length for message define ('MAX_MESG', 7500); // Max. length for message define ('TS_MESG', 'Message is too Short.'); // Error for message too short define ('TL_MESG', 'Message is too Long.'); // Error for message too long </code></pre> <p>Excerpt from <code>process.php</code>:</p> <pre><code>// Validate each form field if (empty($name)) { $errors['name'] = MIA_NAME; } // Missing name elseif (strlen(trim($_POST['name'])) &lt; MIN_NAME ) { $errors['name'] = TS_NAME; } // Name too short elseif (strlen(trim($_POST['name'])) &gt; MAX_NAME ) { $errors['name'] = TL_NAME; } // Name too long if (empty($email)) { $errors['email'] = MIA_ADDR; } // Missing email address elseif (strlen(trim($_POST['email'])) &lt; MIN_ADDR ) { $errors['email'] = TS_ADDR; } // Email too short elseif (strlen(trim($_POST['email'])) &gt; MAX_ADDR ) { $errors['email'] = TL_ADDR; } // Email too 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'])) &lt; MIN_MESG ) { $errors['message'] = TS_MESG; } // Message too short elseif (strlen(trim($_POST['message'])) &gt; MAX_MESG ) { $errors['message'] = TL_MESG; } // Message too long </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload