Код вызова и обработки формы типовой, плюс в начале формирую кодовое слово - переменную $NewVar вида
24F685EE
Это кодовое слово вывожу на странице с формой, чтобы человек (не робот) увидел его и ввел в соответствующее текстовое поле (инпут с именем input_newvar)
Но где мне теперь вставить проверку на
совпадение/не совпадение кодового слова и введенного слова, чтобы
форма не отправлялась?
В нижеприведенном коде видна моя попытка, но увы, не отрабатывает.
if (Core::moduleIsActive('form'))
{
$NewVar = Core_Guid::get();
$NewVar = mb_substr($NewVar, 0, 8, 'UTF-8');
$oForm = Core_Entity::factory('Form', Core_Array::get(Core_Page::instance()->libParams, 'formId'));
$Form_Controller_Show = new Form_Controller_Show($oForm);
$xslName = Core_Array::get(Core_Page::instance()->libParams, 'formXsl');
$Form_Controller_Show->addEntity(Core::factory('Core_Xml_Entity')->name('NewVar')->value($NewVar));
if (!is_null(Core_Array::getPost($oForm->button_name)))
{
if (Core_Array::getPost('input_newvar') == $NewVar) {//моя попытка
$Form_Controller_Show
->values($_POST + $_FILES)
// 0 - html, 1- plain text
->mailType(Core_Array::get(Core_Page::instance()->libParams, 'mailType'))
//->addEmail()
->mailXsl(
Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'notificationMailXsl'))
)
->mailFromFieldName(Core_Array::get(Core_Page::instance()->libParams, 'email'));
if (!is_null(Core_Array::getPost('email')) && Core_Valid::email(Core_Array::getPost('email')))
{
$Form_Controller_Show->addEmail(Core_Array::getPost('email'));
} else {
$Form_Controller_Show->addEmail('info@site.com');
}
$Form_Controller_Show->process();
}
}
$Form_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName($xslName)
)
->show();
}