Вход Регистрация
Файл: upload/pages/auth/recovery/check_recovery_code.php
Строк: 57
<?php
require_once ($_SERVER['DOCUMENT_ROOT'] . '/core/core.php');

if (isset(
$user['id'])) {
    
RedirectToPage('/');
    exit();
}

if (
$_SERVER["REQUEST_METHOD"] === "POST") {
    
$codeArray $_POST['code'];
    
$recoveryCode implode(''$codeArray);

    
// Проверяем наличие подходящего кода в таблице восстановления
    
$result dbquery("SELECT email FROM recover_user WHERE code = ?", [$recoveryCode]);
    if (
DataNumRows($result)) {
        
session_regenerate_id(); // обновление сессии для повышения безопасности
        
$_SESSION['verified_email'] = DataResult($result0'email');
        
header('Location: ' homeLink() . '/change-recover-pass'); // переадресация на страницу изменения пароля
        
exit;
    } else {
        
showAlert('Ошибка''fail''Неправильный код восстановления. Попробуйте снова');
        
ReloadPage();
    }
}

$page_html $view->render('pages/auth/recovery/code.html', [
    
'home' => homeLink(),
    
'templ_home' => TemplateLink($theme)
]);

require_once (
$_SERVER['DOCUMENT_ROOT'] . '/layout.php');
?>

<script>
// Список всех элементов ввода
const inputs = document.querySelectorAll('.code-box input');

// Устанавливаем обработчик событий для каждой ячейки
inputs.forEach((input, idx) => {
    input.addEventListener('input', function(event) {
        // Авто-переход к следующему полю после заполнения текущей ячейки
        if (this.value.length >= this.maxLength && idx < inputs.length - 1) {
            inputs[idx + 1].focus();
        }
    });

    // Обработка удаления символов
    input.addEventListener('keyup', function(event) {
        if (event.key === 'Backspace' && this.value === '' && idx > 0) {
            inputs[idx - 1].focus();
        }
    });

    // Добавляем обработку вставки
    input.addEventListener('paste', function(event) {
        event.preventDefault(); // Отменяем стандартную вставку
        const pastedData = event.clipboardData.getData('Text'); // Получаем содержимое буфера обмена
        let charIndex = 0;

        // Заполняем ячейки последовательно значениями из буфера
        inputs.forEach((el, i) => {
            if (charIndex < pastedData.length) {
                el.value = pastedData[charIndex++];
                if (i < inputs.length - 1) {
                    el.focus(); // Перемещаем фокус дальше
                }
            }
        });
    });
});

// Автоматика установки фокуса на первую ячейку
window.onload = () => inputs[0].focus();
</script>
Онлайн: 1
Реклама