From b0f3bbab7a078df3a703cfdb072be8b3ba05a3bd Mon Sep 17 00:00:00 2001 From: Grant Slater Date: Fri, 6 Oct 2023 05:37:45 +0100 Subject: [PATCH] Add basic "sum" captcha. --- index.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/index.php b/index.php index 093bbbc..772b384 100644 --- a/index.php +++ b/index.php @@ -7,6 +7,23 @@ require __DIR__ . '/vendor/autoload.php'; +if (!isset($_SESSION['number1'])) { + $_SESSION['number1'] = (int) rand(1,9); + $_SESSION['number2'] = (int) rand(1,9); +} + +function dummy_captcha_validate($field) { + if (isset($_SESSION['number1'])) { + if (isset($_SESSION['number2'])) { + $sum = $_SESSION['number1'] + $_SESSION['number2']; + if ($field == $sum) { + return true; + } + } + } + return false; +} + function process_data ($values) { $mail = new PHPMailer(true); try { @@ -125,6 +142,11 @@ function process_data ($values) { $form->addElement('text', 'signature', 'Typing your full name in this box will act as your digital signature.', array('size' => 25, 'maxlength' => 255)); $form->addRule('signature', 'Field is required', 'required', null, 'client'); +$form->registerRule('captcha_validate', 'callback', 'dummy_captcha_validate'); +$form->addElement('text', 'captcha', 'Please add (+) together the following numbers: ' . $_SESSION['number1'] . ' and ' . $_SESSION['number2'], array('size' => 25, 'maxlength' => 255)); +$form->addRule('captcha', 'Captcha field is required', 'required', null, 'client'); +$form->addRule('captcha', 'You did not solve the sum', 'captcha_validate'); + $form->addElement('submit', null, 'Send'); $form->removeAttribute('name');