Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将HTML表单提交到PHP表单检查_Php_Html_Forms - Fatal编程技术网

将HTML表单提交到PHP表单检查

将HTML表单提交到PHP表单检查,php,html,forms,Php,Html,Forms,所以现在我正在尝试创建一个HTML文件,它获取用户电话号码,然后通过PHP表单检查检查输入的格式。我一直在试图弄清楚这一点,但我仍然不清楚带有指定参数的int的格式是什么 (重复的问题,但差异足以说明这只是其他问题的复制品。相同的问题,不同的方法,不同的答案。) 我的代码: (在代码中做了一个注释,我不确定该怎么做。) if($_POST && isset($_POST['submit'], $_POST['name'], $_POST['phone'])) { $name =

所以现在我正在尝试创建一个HTML文件,它获取用户电话号码,然后通过PHP表单检查检查输入的格式。我一直在试图弄清楚这一点,但我仍然不清楚带有指定参数的int的格式是什么

(重复的问题,但差异足以说明这只是其他问题的复制品。相同的问题,不同的方法,不同的答案。)

我的代码: (在代码中做了一个注释,我不确定该怎么做。)
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:哇!我们都错过了。