大家好,我目前正在尝试验证表单中的用户输入。我正在使用正则表达式和 php preg_match 函数。我正在尝试使用电子邮件、电话号码和邮政编码来执行此操作。但是,当用户输入不符合正则表达式的电子邮件、电话号码或邮政编码时,什么也不会发生,用户应该会在这种情况下收到一条错误消息。所以我相信我的正则表达式没有被读取,我也不知道为什么。感谢您的任何帮助。
这是我的代码:
<?php
if(isset($_POST['order'])){
$fname = trim(htmlspecialchars($_POST['first_name']));
echo $fname;
$address = trim(htmlspecialchars($_POST['address']));
echo $address;
$city = trim(htmlspecialchars($_POST['city']));
echo $city;
$zipcode = trim(htmlspecialchars($_POST['zip_code']));
echo $zipcode;
$email = trim(htmlspecialchars($_POST['email']));
echo $email;
$validzip = "/^\d{5}$|^\d{5}-\d{4}$/";
$validemail = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/";
$state = $_POST['states'];
echo $state;
$lname = trim(htmlspecialchars($_POST['last_name']));
echo $lname;
$phonenumber = trim(htmlspecialchars($_POST['phone_number']));
echo $phonenumber;
$vaildpn = "/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/";
if(isset($_POST['first_name']) && $fname!= "" && isset($_POST['address'])&& $address !="" && isset($_POST['city']) && $city != "" && isset($_POST['zip_code']) && $zipcode != ""&& isset($_POST['email']) && $email != "" && isset($_POST['last_name']) && $lname != "" && isset($_POST['phone_number']) && $phonenumber != "" && isset($_POST['card_Number']) && $cardnumber != "" && isset($_POST['exp_date']) && $expdate != "" && isset($_POST['cvc']) && $cvc != "" && preg_match($validzip, $zipcode) && preg_match($validemail, $email)){
header("Location: orderplaced.php");
}
}
米脂