情報を収集するフォームがありますが、その1つが電話番号です。電話番号データは、市外局番、最初の3桁、および最後の4つの3つのフィールドから取得されるため、番号はxxx-xxx-xxxx(基本的な米国の形式)の形式になります。
これらの3つのフィールドは必須ではありませんが、誰かが3つのフィールドの任意の組み合わせに入力することを決定した場合は、基本的なエラーチェックを行います。
(彼らが私に市外局番だけを与えたとしましょう-つまり、彼らは私に彼らの番号を与えたかったので、本質的にそれが必要になるので、コードは1)3つのデータセットすべてが送信されたこと、および2)を確認する必要があります3つすべては数字だけです)
これが私がうまくいくと思ったものですが、そうではありません:
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']; }
助言がありますか?