} else { // last few simple checks if (strlen($mobile_value) != 12) { $mobile_value = ""; } if (substr($mobile_value, 0, 3) != "380") { $mobile_value = ""; } // verify not empty and not used mobile number if ($mobile_value && mobile_not_used($mobile_value)) { $secret_code = safe_rand(100000, 999999); $_SESSION['mobile_value'] = $mobile_value; $_SESSION['mobile_code'] = $secret_code; // accept any +380 mobile w/o sms test if (!empty($settings['disable_sms_test'])) { set_test_passed('mobile'); redirect('step4.php'); } send_mobile_code($mobile_value, $secret_code); $mobile_code = ""; } else { append_error("Цей номер телефону неможливо використати."); $mobile_value = ""; } } } else { /** * get mobile number from session if present */ if (isset($_SESSION['mobile_value'])) { $mobile_value = $_SESSION['mobile_value'];
*/ if ($_POST) { check_and_dec_limit('check_email_limit'); $email_value = post_arg('email_input', 'strtolower', '/^[\\w\\d_\\-\\.]+@[\\w\\d\\-\\.]+\\.\\w+$/'); $email_code = post_arg('email_code_input', 'intval'); // if we on second step restore email from session if ($email_code && $_SESSION['email_value']) { $email_value = $_SESSION['email_value']; } /** * if email already sent */ if (!empty($_SESSION['email_value']) && !empty($_SESSION['email_code'])) { // pass this test if user has entered correct code if ($email_code && $email_code == $_SESSION['email_code']) { set_test_passed('email'); redirect('step3.php'); } else { append_error("Код невірний"); $email_code = ""; } } else { // some checks before send code if (strlen($email_value) < 6) { $email_value = ""; } if (strpbrk($email_value, " ,;'\"\t\n") !== false) { $email_value = ""; } // verify not empty and not used email then send code if ($email_value && email_not_used($email_value)) {
<?php require "system/__init__.php"; require_test_pass('captcha', 'step1.php'); require_test_pass('email', 'step2.php'); require_test_pass('mobile', 'step3.php'); next_if_test_pass('vote', 'step5.php'); /** * Handle form data */ if ($_POST) { $keys = array(); if (is_array($_POST['id'])) { $keys = array_keys($_POST['id']); } if ($keys) { $keys = filter_candidates($keys); } if (count($keys) < 1) { append_error("Ви не обрали жодного кандидата."); } elseif (count($keys) > get_selected_limit()) { append_error("Ви обрали більше ніж дозволено кандидатів."); } else { if (safe_save_vote($keys)) { set_test_passed('vote'); redirect('step5.php'); } } } require get_template('step4');
} /** * Handle form data */ if ($_POST) { $ukr_citizen = post_arg('ukr_citizen'); $personal_data = post_arg('personal_data'); $captcha_res = captcha_verify(); $current_date = date('Y-m-d H:i:s'); if (!$ukr_citizen) { append_error("Не підтверджена згода з правилами голосування."); } if (!$personal_data) { append_error("Немає згоди на обробку персональних даних."); } if (!$captcha_res) { append_error("Не пройдено тест на роботів!"); } if ($current_date < $settings['open_elections_time']) { append_error("Вибори ще не розпочались."); } if ($current_date > $settings['close_elections_time']) { append_error("Вибори вже закінчились."); } if (empty($_ERRORS) && $ukr_citizen && $personal_data && $captcha_res) { init_user_session(); set_test_passed('captcha'); redirect('step2.php'); } } require get_template('step1');