如何验证输入类型文本是否为空-PHP
我正在尝试制作一个联系人表单,需要对input type=text进行验证,但是,它似乎有一些错误,我找不到。你能帮助我吗?代码如下:如何验证输入类型文本是否为空-PHP,php,forms,validation,if-statement,contact-form,Php,Forms,Validation,If Statement,Contact Form,我正在尝试制作一个联系人表单,需要对input type=text进行验证,但是,它似乎有一些错误,我找不到。你能帮助我吗?代码如下: <td> Name*:<input type="text" name="name" id='name2' class="name1" /> </td> <td> Email*:<input type='text' name="email" class="email1" id='email2'/>
<td>
Name*:<input type="text" name="name" id='name2' class="name1" />
</td>
<td>
Email*:<input type='text' name="email" class="email1" id='email2'/>
</td>
</tr>
<tr>
<td colspan="2" rowspan="2">
Message*: <br />
<textarea name='msg' style="float:right;" class="msg1" id='msg2'>
</textarea>
</td>
在这里:
<?PHP
$nml = strlen($_POST['name']);
$eml = strlen($_POST['email']);
$msgl = strlen($_POST['msg']);
if(isset($_GET['sent'])) {
if($nml<1) {
if($eml<1) {
if($msgl<1) {
exit("<script>document.getElementById('name2').style.borderColor='red'; document.getElementById('email2').style.borderColor='red'; document.getElementById('msg2').style.borderColor='red';</script><center><font color='red'>Name*, Email* and Message* fields are required</font></center>");
}
exit("<script>document.getElementById('name2').style.borderColor='red'; document.getElementById('email2').style.borderColor='red';</script><center><font color='red'>Name* and Email* fields are required</font></center>");
}
exit("<script>document.getElementById('name2').style.borderColor='red'; <center><font color='red'>Name* field is required</font></center>");
}
if($eml<1) {
if($msgl<1) {
if($nml<1) {
exit("<script>document.getElementById('email2').style.borderColor='red'; document.getElementById('name2').style.borderColor='red'; document.getElementById('msg2').style.borderColor='red';</script><center><font color='red'>Email*, Name * and Message* fields are required</font></center>");
}
exit("<script>document.getElementById('email2').style.borderColor='red'; document.getElementById('msg2').style.borderColor='red';</script><center><font color='red'>Email* and Message* fields are required</font></center>");
}
exit("<script>document.getElementById('email2').style.borderColor='red';</script><center><font color='red'>Email* field is required</font></center>");
}
if($msgl<1) {
if($nml<1) {
if($eml<1) {
exit("<script>document.getElementById('msg2').style.borderColor='red'; document.getElementById('name2').style.borderColor='red'; document.getElementById('email2').style.borderColor='red';</script><center><font color='FF0000'>Message*, Name* and Email* Fields are required</font></center>");
}
exit("<script>document.getElementById('msg2').style.borderColor='red'; document.getElementById('name2').style.borderColor='red';</script><center><font color='FF0000'>Message* and Name* Fields are required</font></center>");
}
exit("<script>document.getElementById('msg2').style.borderColor='red';</script><center><font color='FF0000'>Message* Field is required</font></center>");
}
}
?>
请帮我修一下,我试了很多次,但就是修不好。这对我来说太难了您的代码的问题是这部分逻辑:
if($nml<1) {
if($eml<1) {
if($msgl<1) {
exit(/* simplified for clarity */);
}
exit(/* simplified for clarity */);
}
exit(/* simplified for clarity */);
}
如果每条消息需要不同,则使用单独的If语句,如下所示:
if($nml<1) {
exit(/* simplified for clarity */);
}
if($eml<1) {
exit(/* simplified for clarity */);
}
if($msgl<1) {
exit(/* simplified for clarity */);
}
相反,使用-检查索引是否已设置,以及是否为空,这将防止抛出通知
if(empty($_POST['name']) {
exit(/* simplified for clarity */);
}
对post变量使用trim函数,例如$nml=strlentrim$\u post['name'] 使用它:
<?php
if(isset($_POST['sent'])) {
$nml = strlen($_POST['name']);
$eml = strlen($_POST['email']);
$msgl = strlen($_POST['msg']);
if(empty($nml)) {
echo "<script>document.getElementById('name2').style.borderColor='red'; </script><center><font color='red'>Name* fields is required</font></center><br>";
}
if(empty($eml)) {
echo "<script>document.getElementById('email2').style.borderColor='red';</script><center><font color='red'>Email* fields is required</font></center><br>";
}
if(empty($msgl)) {
echo "<script>document.getElementById('msg2').style.borderColor='red'; <center><font color='red'>Message* field is required</font></center><br>";
}
if(empty($nml) || empty($eml) || empty($msgl)) {
exit;
}
}
?>
许多错误-例如:在“email2”之后忘记关闭标记。style.borderColor='red';和是不推荐使用的HTML标记。此ifisset$\u GET['sent']{与POST值不匹配。
if(empty($_POST['name']) {
exit(/* simplified for clarity */);
}
<?php
if(isset($_POST['sent'])) {
$nml = strlen($_POST['name']);
$eml = strlen($_POST['email']);
$msgl = strlen($_POST['msg']);
if(empty($nml)) {
echo "<script>document.getElementById('name2').style.borderColor='red'; </script><center><font color='red'>Name* fields is required</font></center><br>";
}
if(empty($eml)) {
echo "<script>document.getElementById('email2').style.borderColor='red';</script><center><font color='red'>Email* fields is required</font></center><br>";
}
if(empty($msgl)) {
echo "<script>document.getElementById('msg2').style.borderColor='red'; <center><font color='red'>Message* field is required</font></center><br>";
}
if(empty($nml) || empty($eml) || empty($msgl)) {
exit;
}
}
?>