[英]Basic Form Validation Check Number?
在这个脚本中,我正在检查字段是否为空,电子邮件地址在语法上是否正确。 如何在表单底部添加文本输入以获得基本求和问题,例如(2+5)=
我想在当前脚本中添加验证元素以检查它是否等于7。
if (empty($name) || empty($phone) || empty($email) || empty($enquiry))
{
echo " * Sorry all fields are required.";
}
elseif(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $email))
{
print "<p>Sorry the email address you entered looks like it's invalid.</p>";
}
else
{
mail($to, $sub, $mes, $headers);
print "<p>Thank you ".$name." for contacting us.<br /><br />We will be in touch shortly.</p>";
}
1如果您的会话未启动,请在第一行使用
session_start();
2在显示表格之前。 添加此代码。 还要记住,会话启动也必须在验证所在的文件中。
$numa = rand(1,5);
$numb = rand(0,4);
$_SESSION['valid_res'] = $numa+$numb;
echo "<p>To submit form please solve this equatation $numa + $numb = ?";
echo '<input type="text name="result_val" />';
3在验证功能中,您应该检查
if(intval($_POST['resul_val']) != $_SESSION['valid_res'])
{
echo "sorry you put wrong result in validation form";
}
但是,如果我是你,我会使用RECAPTCHA
如果您只想验证静态总和,例如,您知道它总是(2 + 5)= 7
然后你可以写一个简单的函数来检查发布的值。
// this being your posted value;
$validate = 7;
function SumCheck($value){
if ( 2 + 5 == $value ){
return true;
}
else{
return false;
}
}
然后将您的初始行更改为;
if (empty($name) || empty($phone) || empty($email) || empty($enquiry) || !SumCheck($validate))
但是,我建议使用RECAPTCHA作为Robert Podwika的建议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.