Php 验证HTML联系人表单

Php 验证HTML联系人表单,php,javascript,html,validation,contact-form,Php,Javascript,Html,Validation,Contact Form,我有一个HTML联系人表单,我需要以某种方式进行验证 如果有任何字段没有填写,我宁愿在保留为空的字段下方显示“Field Required”字样,而不是用JavaScript提醒用户 这是我的联系方式contact.html: <form id = "myForm" action="contact.php" method="post"> <label for="name">Name:</label> <input type="text" name="n

我有一个HTML联系人表单,我需要以某种方式进行验证

如果有任何字段没有填写,我宁愿在保留为空的字段下方显示“Field Required”字样,而不是用JavaScript提醒用户

这是我的联系方式
contact.html

<form id = "myForm" action="contact.php" method="post">

<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" tabindex="1" />


<label for="name">Email:</label>
<input type="text" name="email" id="email" value="" tabindex="1" />


<input type="submit" value="Submit" class="button" />
</form>

正如您所看到的,我当前的验证在PHP中构建了一个字符串,它将在最后向用户发出警报(省略)但是,我想通过在保留为空的HTML字段下方显示字符串“Field Required”来替换此方法。

如果您可以使用一些html5功能,另一个选项是在输入上设置Required属性

必修的 此属性指定用户在提交表单之前必须填写值。当类型属性为隐藏、图像或按钮类型(提交、重置或按钮)时,不能使用该属性。:可选和:必需的CSS伪类将根据需要应用于字段

取自

因此,您的html将变成:

<form id = "myForm" action="contact.php" method="post">

<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" tabindex="1" required />


<label for="name">Email:</label>
<input type="text" name="email" id="email" value="" tabindex="1" required />


<input type="submit" value="Submit" class="button" />
</form>

姓名:
电邮:

如果您可以使用一些html5功能,另一个选项是在输入上设置所需的属性

必修的 此属性指定用户在提交表单之前必须填写值。当类型属性为隐藏、图像或按钮类型(提交、重置或按钮)时,不能使用该属性。:可选和:必需的CSS伪类将根据需要应用于字段

取自

因此,您的html将变成:

<form id = "myForm" action="contact.php" method="post">

<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" tabindex="1" required />


<label for="name">Email:</label>
<input type="text" name="email" id="email" value="" tabindex="1" required />


<input type="submit" value="Submit" class="button" />
</form>

姓名:
电邮:

我想回答你的问题而不偏离你的方法

如果php可以解析contact.html,或者只是将其更改为contactform.php,则可以向其发送一个查询字符串,指示哪些字段有错误,并在其下方显示一条消息

contactform.php

<form id = "myForm" action="contact.php" method="post">

<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" tabindex="1" />
<?php if (isset($_GET['name']) && $_GET['name'] == 1) { 
    echo '<br/>This field is required.'; 
} ?>


<label for="name">Email:</label>
<input type="text" name="email" id="email" value="" tabindex="1" />
<?php if (isset($_GET['email']) && $_GET['email'] == 1) { 
    echo '<br/>This field is required.'; 
} ?>
$error = FALSE;

$errors = array();

if(!isset($_POST['name']) || strlen($_POST['name']) < 1){
    $error = TRUE;
    $errors[] = 'name=1';
}

if(!isset($_POST['email']) || strlen($_POST['email']) < 1){
    $error = TRUE;
    $errors[] = 'email=1';
}

$geterrors = (count($errors) > 1 ? implode('&',$errors) : $errors[0]);

if($error){ ?>

<script language="javascript" type="text/javascript">
    window.location = 'contactform.php?<?php echo $geterrors; ?>';
</script>

...

姓名:
电邮:

contact.php

<form id = "myForm" action="contact.php" method="post">

<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" tabindex="1" />
<?php if (isset($_GET['name']) && $_GET['name'] == 1) { 
    echo '<br/>This field is required.'; 
} ?>


<label for="name">Email:</label>
<input type="text" name="email" id="email" value="" tabindex="1" />
<?php if (isset($_GET['email']) && $_GET['email'] == 1) { 
    echo '<br/>This field is required.'; 
} ?>
$error = FALSE;

$errors = array();

if(!isset($_POST['name']) || strlen($_POST['name']) < 1){
    $error = TRUE;
    $errors[] = 'name=1';
}

if(!isset($_POST['email']) || strlen($_POST['email']) < 1){
    $error = TRUE;
    $errors[] = 'email=1';
}

$geterrors = (count($errors) > 1 ? implode('&',$errors) : $errors[0]);

if($error){ ?>

<script language="javascript" type="text/javascript">
    window.location = 'contactform.php?<?php echo $geterrors; ?>';
</script>

...
$error=FALSE;
$errors=array();
如果(!isset($_POST['name'])| | strlen($_POST['name'])<1){
$error=TRUE;
$errors[]='name=1';
}
如果(!isset($_POST['email'])| strlen($_POST['email'])<1){
$error=TRUE;
$errors[]='email=1';
}
$geterrors=(计数($errors)>1?内爆('&',$errors):$errors[0]);
如果($error){?>
window.location='contactform.php?';
...

我想回答你的问题而不偏离你的方法

如果php可以解析contact.html,或者只是将其更改为contactform.php,则可以向其发送一个查询字符串,指示哪些字段有错误,并在其下方显示一条消息

contactform.php

<form id = "myForm" action="contact.php" method="post">

<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" tabindex="1" />
<?php if (isset($_GET['name']) && $_GET['name'] == 1) { 
    echo '<br/>This field is required.'; 
} ?>


<label for="name">Email:</label>
<input type="text" name="email" id="email" value="" tabindex="1" />
<?php if (isset($_GET['email']) && $_GET['email'] == 1) { 
    echo '<br/>This field is required.'; 
} ?>
$error = FALSE;

$errors = array();

if(!isset($_POST['name']) || strlen($_POST['name']) < 1){
    $error = TRUE;
    $errors[] = 'name=1';
}

if(!isset($_POST['email']) || strlen($_POST['email']) < 1){
    $error = TRUE;
    $errors[] = 'email=1';
}

$geterrors = (count($errors) > 1 ? implode('&',$errors) : $errors[0]);

if($error){ ?>

<script language="javascript" type="text/javascript">
    window.location = 'contactform.php?<?php echo $geterrors; ?>';
</script>

...

姓名:
电邮:

contact.php

<form id = "myForm" action="contact.php" method="post">

<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" tabindex="1" />
<?php if (isset($_GET['name']) && $_GET['name'] == 1) { 
    echo '<br/>This field is required.'; 
} ?>


<label for="name">Email:</label>
<input type="text" name="email" id="email" value="" tabindex="1" />
<?php if (isset($_GET['email']) && $_GET['email'] == 1) { 
    echo '<br/>This field is required.'; 
} ?>
$error = FALSE;

$errors = array();

if(!isset($_POST['name']) || strlen($_POST['name']) < 1){
    $error = TRUE;
    $errors[] = 'name=1';
}

if(!isset($_POST['email']) || strlen($_POST['email']) < 1){
    $error = TRUE;
    $errors[] = 'email=1';
}

$geterrors = (count($errors) > 1 ? implode('&',$errors) : $errors[0]);

if($error){ ?>

<script language="javascript" type="text/javascript">
    window.location = 'contactform.php?<?php echo $geterrors; ?>';
</script>

...
$error=FALSE;
$errors=array();
如果(!isset($_POST['name'])| | strlen($_POST['name'])<1){
$error=TRUE;
$errors[]='name=1';
}
如果(!isset($_POST['email'])| strlen($_POST['email'])<1){
$error=TRUE;
$errors[]='email=1';
}
$geterrors=(计数($errors)>1?内爆('&',$errors):$errors[0]);
如果($error){?>
window.location='contactform.php?';
...

能否将if语句移动到p标记中每个输入和回显的下方?您尝试了什么
javascript
代码?您当前的脚本是html和php。使用当前代码,用户必须首先提交表单,然后才会收到空字段提示,如果您想要在表单提交之前检查空字段的方法,您将eed javascript(或jquery)使用jquery表单验证-@joespina我希望用户在提交表单时使用空字段提示,而不是在提交之前submit@Fred是的,可以这样做,但这与
action=“contact.php”冲突
这是它发送实际表单的地方,具体取决于是否所有内容都有效。您是否可以将if语句移动到每个输入的下方,并在p标记中回显?您尝试过什么
javascript
代码?您当前的脚本是html和php。使用当前代码,用户必须首先提交表单,然后用空字段提示,i如果您想要在表单提交之前检查空字段的方法,则需要javascript(或jquery)使用jquery表单验证-@joespina我希望用户提交表单时得到空字段的提示,而不是在提交之前submit@Fred是的,可以这样做,但这与
action=“contact.php”冲突
这是它发送实际表单的地方,具体取决于是否所有内容都有效。它确实依赖于实现功能的浏览器,因此会产生混合结果。与任何客户端验证一样,它没有理由不在服务器端进行验证。它确实依赖于实现功能的浏览器,因此它将具有ixed结果。就像任何客户端验证一样,没有理由不在服务器端进行验证。