我有一个联系表单,我需要在PHP中验证以检查每个字段是否正确填充。
这就是我所拥有的:
//Post fields
<?php
$field_name = $_POST['name'];
$field_email = $_POST['email'];
$field_services = $_POST['services'];
$field_it = $_POST['it'];
$field_location = $_POST['location'];
$field_message = $_POST['message'];
//mail_to omitted
//Validation of contact form
$errormessage = '';
if($field_name == ''){
$errormessage += 'You have not entered your Name\n';
}
if($field_email == ''){
$errormessage += 'You have not entered your Email Address\n';
}
if($field_services == ''){
$errormessage += 'You have not chosen the service you require\n';
}
if($field_it == ''){
$errormessage += 'You have not chosen the Date of your event\n';
}
if($field_location == ''){
$errormessage += 'You have not entered the location of your event\n';
}
if($errormessage != ''){ ?>
<script language="javascript" type="text/javascript">
alert('The following fields have not neen entered correctly\n<?php echo "$errormessage" ?>');
window.location = 'contact.html';
</script>
<?php }
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Thank you for the message. We will contact you shortly.');
window.location = 'contact.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('Message failed. Please, send an email to s_ejaz@live.co.uk');
window.location = 'contact.html';
</script>
<?php
}
?>
当我尝试提交一个空的联系表单时,这没有任何作用,它应该提醒用户未填写但未填写的特定字段。它只是带我一个空白的白页。
有人能帮我找到我错的地方吗?
答案 0 :(得分:2)
此外,您可以使用trim功能删除任何空格。
trim($_POST['name'])...
答案 1 :(得分:1)
您应该使用strlen()
和isset()
来检查是否从表单中收到任何数据。
示例:
if(!isset($_POST['name']) || strlen($_POST['name']) < 1){
$errormessage .= 'You have not entered your Name\n';
}
答案 2 :(得分:1)
$field_services == ''
那样将变量与空字符串进行比较
if(!empty($field_services))
或if(isset($field_services))
另一个问题是您使用+
连接字符串,如果您使用的是javascript
,java
或C#
等,则为真。{{1} }。
使用PHP连接变量:
PHP
所以您的代码应为:
$var='Hello';
$var.=' World !'
echo $var;// Hello World !
答案 3 :(得分:1)
尝试使用$errormessage.='Some text\n';
代替$errormessage+='Some text\n';
使用“+
”而不是“.
”,PHP将变量$errormessage
视为数字,并且断言失败。