phpmailer中的表单字段长度验证

phpmailer中的表单字段长度验证,php,validation,phpmailer,Php,Validation,Phpmailer,我想按最小和最大长度验证表单字段 我已经在验证它们是否为空或电子邮件地址是否无效。我想为每个字段添加额外的长度要求(最小长度和最大长度)。这方面的最佳做法是什么 摘自我的process.php文件: require_once('includes/phpmailer-config.php'); require_once('includes/phpmailer/class.phpmailer.php'); // other stuff here // Validate each form fie

我想按最小和最大长度验证表单字段

我已经在验证它们是否为空或电子邮件地址是否无效。我想为每个字段添加额外的长度要求(最小长度和最大长度)。这方面的最佳做法是什么

摘自我的
process.php
文件:

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
}
// 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
摘自我的
phpmailer config.php
文件:

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
}
// 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






编辑:多亏了Amal的回答,我最终使用了以下内容:

摘自
phpmailer config.php

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
// 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 too short
elseif (strlen(trim($_POST['name'])) > MAX_NAME ) {
    $errors['name'] = TL_NAME; }     // Name too long

if (empty($email)) {
    $errors['email'] = MIA_ADDR; }   // Missing email address
elseif (strlen(trim($_POST['email'])) < MIN_ADDR ) {
    $errors['email'] = TS_ADDR; }    // Email too short
elseif (strlen(trim($_POST['email'])) > 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'])) < MIN_MESG ) {
    $errors['message'] = TS_MESG; }  // Message too short
elseif (strlen(trim($_POST['message'])) > MAX_MESG ) {
    $errors['message'] = TL_MESG; }  // Message too long
摘自
process.php

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
// 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 too short
elseif (strlen(trim($_POST['name'])) > MAX_NAME ) {
    $errors['name'] = TL_NAME; }     // Name too long

if (empty($email)) {
    $errors['email'] = MIA_ADDR; }   // Missing email address
elseif (strlen(trim($_POST['email'])) < MIN_ADDR ) {
    $errors['email'] = TS_ADDR; }    // Email too short
elseif (strlen(trim($_POST['email'])) > 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'])) < MIN_MESG ) {
    $errors['message'] = TS_MESG; }  // Message too short
elseif (strlen(trim($_POST['message'])) > MAX_MESG ) {
    $errors['message'] = TL_MESG; }  // Message too long
//验证每个表单字段
if(空($name)){
$errors['name']=MIA_name;}//缺少名称
elseif(strlen(trim($_POST['name']))MAX_name){
$errors['name']=TL_name;}//名称太长
如果(空($email)){
$errors['email']=MIA_ADDR;}//缺少电子邮件地址
elseif(strlen(trim($_POST['email']))MAX\u ADDR){
$errors['email']=TL_ADDR;}//电子邮件太长
elseif(!(过滤器变量($email,过滤器验证电子邮件))){
$errors['email']=INV_ADDR;}//无效的电子邮件地址
if(空($message)){
$errors['message']=MIA_MESG;}//缺少消息
elseif(strlen(修剪($_POST['message']))MAX_MESG){
$errors['message']=TL_MESG;}//消息太长
在HTML5中,您可以使用该属性,如下所示:

<input pattern=".{5,25}" title="Input 5 to 25 characters">
将其集成到您当前的代码中,将类似于:

if (empty($name)) {
    $errors['name'] = MIA_NAME;    // Error message for 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 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
}
if(空($name)){
$errors['name']=MIA_name;//缺少名称的错误消息
}
如果(strlen(修剪($_POST['name'])>=5){
#代码。。。
}elseif(strlen(trim($\u POST['name']))在HTML5中,您可以使用该属性,如下所示:

<input pattern=".{5,25}" title="Input 5 to 25 characters">
将其集成到您当前的代码中,将类似于:

if (empty($name)) {
    $errors['name'] = MIA_NAME;    // Error message for 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 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
}
if(空($name)){
$errors['name']=MIA_name;//缺少名称的错误消息
}
如果(strlen(修剪($_POST['name'])>=5){
#代码。。。

}elseif(strlen(trim($_POST['name']))在我自己的验证逻辑中,我应该在哪里集成它呢?我特别指的是
if
elseif
语句的顺序。我还希望对于太短的字符串和太长的字符串使用不同的消息。为了使这个模块化,我想在我的
config.php
文件中指定长度。@Daze:我已经更新了answ但是,我不确定如何从配置文件(
{207500}
)中读取允许的最大和最小长度,所以我就到此为止。我认为最好为最小和最大长度定义多个常量,并使用
if-elseif
块。再次感谢,Amal。为最小值和最大值使用单独的常量确实会更简单。我在表单中集成了额外的
if
elseif
语句感谢你更新的答案。作为参考,我已经用我最终使用的代码更新了我的问题。我应该在哪里将其集成到我自己的验证逻辑中?我特别指的是
if
elseif
语句的顺序。我还希望对于过短的字符串和过长的字符串使用不同的消息。要制作此mod当然,我想在我的
config.php
文件中指定长度。@Daze:我已经更新了答案。但是,我不确定如何从配置文件(
{207500}
)中读取允许的最大和最小长度,所以我就到此为止。我认为最好为最小和最大长度定义多个常量,并使用
if-elseif
块。再次感谢,Amal。为最小值和最大值使用单独的常量确实会更简单。我在表单中集成了额外的
if
elseif
语句感谢你更新的答案。作为参考,我已经用我最后使用的代码更新了我的问题。