我有一个收集信息的表格,其中一个是电话号码。电话号码数据来自三个字段,一个是区号,一个是前 3 位数字,一个是后四位数字,因此号码的格式为:xxx-xxx-xxxx(美国基本格式)。
这三个字段不是必需的,但如果有人决定填写这三个字段的任意组合,我想做一些基本的错误检查:
(假设他们只给我区号 - 这意味着他们想给我他们的号码,所以从本质上讲,它成为必需的,所以代码应该检查以查看 1)所有三个数据集都已发送,以及 2)这三个都只是数字)
这是我认为可行的方法,但它没有:
if((isset($_POST['numArea'], $_POST['numFirst'], $_POST['numSecond']) && (!ctype_digit(trim($_POST['numArea'])) || !ctype_digit(trim($_POST['numFirst'])) || !ctype_digit(trim($_POST['numSecond'])) || strlen(trim($_POST['numArea'])) !== 3 || strlen(trim($_POST['numFirst'])) !== 3 || strlen(trim($_POST['numSecond'])) !== 4))
|| (isset($_POST['numArea']) XOR isset($_POST['numFirst']) XOR isset($_POST['numArea']))){
$errors[] = 'Please give us a valid Phone Number, or remove any numbers if you do not wish to use your phone number.';
}else{
$_POST['PhoneNumber'] = '+01'.$_POST['numArea'].'-'.$_POST['numFirst'].'-'.$_POST['numSecond']; }
有什么建议么?