为了账号安全,请及时绑定邮箱和手机立即绑定

使用 preg_match 和正则表达式进行 PHP 表单验证

使用 preg_match 和正则表达式进行 PHP 表单验证

PHP
扬帆大鱼 2022-12-11 09:16:05
大家好,我目前正在尝试验证表单中的用户输入。我正在使用正则表达式和 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


查看完整回答
反对 回复 2022-12-11
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信