将HTML表单提交到PHP表单检查
所以现在我正在尝试创建一个HTML文件,它获取用户电话号码,然后通过PHP表单检查检查输入的格式。我一直在试图弄清楚这一点,但我仍然不清楚带有指定参数的int的格式是什么 (重复的问题,但差异足以说明这只是其他问题的复制品。相同的问题,不同的方法,不同的答案。) 我的代码: (在代码中做了一个注释,我不确定该怎么做。)将HTML表单提交到PHP表单检查,php,html,forms,Php,Html,Forms,所以现在我正在尝试创建一个HTML文件,它获取用户电话号码,然后通过PHP表单检查检查输入的格式。我一直在试图弄清楚这一点,但我仍然不清楚带有指定参数的int的格式是什么 (重复的问题,但差异足以说明这只是其他问题的复制品。相同的问题,不同的方法,不同的答案。) 我的代码: (在代码中做了一个注释,我不确定该怎么做。) if($_POST && isset($_POST['submit'], $_POST['name'], $_POST['phone'])) { $name =
if($_POST && isset($_POST['submit'], $_POST['name'], $_POST['phone'])) {
$name = $_POST['name'];
$phone = $_POST['phone'];
if(!$name) {
$errorMsg = "Please enter your name";
} elseif(!$phone || !preg match("\d{3}[\-]\d{7}", $email)){//this line format is incorrect
$errorMsg = "Please enter a valid phone number";
exit;
}
?>
<html>
<body>
<form method="POST">
Name:<br>
<input type="text" name="name">
<br>
Phone:<br>
<input type="tel"
pattern="\d{3}[\-]\d{7}"
title="Phone Number (Format: 999-9999999)"
name="phone">
<input name="submit" type="submit" value="submit">
</form>
</body>
</html>
if($\u POST&&isset($\u POST['submit'],$\u POST['name'],$\u POST['phone'])){
$name=$_POST['name'];
$phone=$_POST['phone'];
如果(!$name){
$errorMsg=“请输入您的姓名”;
}elseif(!$phone | |!preg match(“\d{3}[\-]\d{7},$email”){//此行格式不正确
$errorMsg=“请输入有效的电话号码”;
出口
}
?>
名称:
电话:
regexp模式应包含在/or#中- preg_match(“/\d{3}[-]\d{7}/”,$phone) -乌穆德
这家伙回答了我的问题。你在
preg\u match()
中缺少和preg\u match的分隔符,你在preg\u match中有变量$email
,而不是$phone
。我还添加了如果phone不是11个字符,因为你的正则表达式允许尾随字符
if(!$name) {
$errorMsg = "Please enter your name";
} elseif(!$phone || !preg_match('~\d{3}[\-]\d{7}~', $phone) || strlen($phone) != 11){//this line format is incorrect
$errorMsg = "Please enter a valid phone number";
exit;
}
如果你的表单提交到当前页面本身,你实际上可以去掉表单中的action属性。如果你真的在preg
和match
之间缺少一个\ucode>?而且,$email
没有定义,你是说$phone
?@Andrew谢谢!我不知道,我也修复了它。regexp模式shou我会被封在/
或
-preg\u match(“/\d{3}[\-]\d{7}/”,$phone)
@u\u mulder:哇!我们都错过了。