Номер проверки базовой проверки?

В этом скрипте я проверяю, являются ли поля пустыми, а адрес электронной почты синтаксически корректен. Как добавить текстовый ввод в нижней части моей формы для основного вопроса суммы, например (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-]+)*(\.[az]{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>"; } 

Если вы просто хотите проверить статическую сумму, например, вы знаете, что она всегда будет (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, как предложил Роберт Подвика .

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