大家好,我目前正在尝试验证表单中的用户输入。我正在使用正则表达式和 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"); }}
1 回答
米脂
TA贡献1836条经验 获得超3个赞
没有$_POST['order']
提交。尝试将此添加到您的表单中:
<input type="hidden" value="1" name="order">
我还建议您使用更好的验证方法,例如filter_var
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报
0/150
提交
取消