/
TOXYGENCY
/
lispp
Обзор
Документация
Войти
/
TOXYGENCY
/
lispp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
index.php
184 строки
11 KB
TOXYGENCY
Первый коммит
18 ноя 2024, 22:38
18 ноя 2024, 22:38
6c14b8b
Код
Авторство
О чём код?
<!DOCTYPE html> <html lang="ru" data-bs-theme="<?php echo $_GET['theme'] ?? 'light'; ?>"> <!-- Изменение темы Bootstrap --> <head> <?php include 'head-tags.php'; ?> <title>Вход в Информационную систему</title> </head> <body> <div class="container mt-5"> <div class="row justify-content-center"> <div class="col-md-5"> <!-- основной блок --> <div class="card"> <!-- заголовок --> <div class="card-header bg-primary text-white text-center"> <h3><?php echo "true" == $_GET['singup'] ? 'Регистрация' : 'Войти'; ?></h3> </div> <!-- контент --> <div class="card-body"> <!-- форма --> <form action="db-manager.php" method="post"> <!-- выпадающий список --> <?php if ("true" == $_GET['singup']): ?> <div class="form-group"> <label for="user-type">Выберите тип пользователя</label> <div class="input-group mb-3"> <select class="form-select" name="user-type" id="user-type" aria-label="Выбор типа пользователя"> <option value="student" <?php echo isset($_GET['userType']) && $_GET['userType'] == "student" ? 'selected' : ''; ?>>Ученик</option> <option value="teacher" <?php echo isset($_GET['userType']) && $_GET['userType'] == "teacher" ? 'selected' : ''; ?>>Преподаватель</option> <option value="admin" <?php echo isset($_GET['userType']) && $_GET['userType'] == "admin" ? 'selected' : ''; ?>>Администратор</option> </select> </div> </div> <?php endif; ?> <!-- поле ввода логина --> <div class="form-group"> <label for="email">Email</label> <input type="email" class="form-control" name="email" id="email" required> </div> <!-- поле ввода пароля --> <div class="form-group"> <label for="password">Пароль</label> <div class="input-group"> <input type="password" class="form-control" name="password" id="password" required> <!-- кнопка для отображения пароля --> <button class="btn btn-outline-secondary password-toggle" type="button" data-bs-toggle="button" aria-pressed="false"> <span class="visually-hidden">Показать пароль</span> <i class="bi bi-eye-slash"></i> </button> </div> </div> <?php if ("true" == $_GET['singup']): ?> <!-- поле подтверждения пароля --> <div class="form-group"> <label for="confirm-password">Подтвердите пароль</label> <div class="input-group"> <input type="password" class="form-control" name="confirm-password" id="confirm-password" required> <!-- кнопка для отображения пароля --> <button class="btn btn-outline-secondary" type="button" data-bs-toggle="button" aria-pressed="false"> <span class="visually-hidden">Показать пароль</span> <i class="bi bi-eye-slash"></i> </button> </div> </div> <?php if (isset($_GET['userType']) && $_GET['userType'] == 'admin'): ?> <!-- поле ввода кода администратора --> <div class="form-group"> <label for="admin-code">Код администратора</label> <input type="text" class="form-control" name="admin-code" id="admin-code" required> </div> <?php elseif (isset($_GET['userType']) && $_GET['userType'] == 'teacher'): ?> <!-- поле ввода кода организации --> <div class="form-group"> <label for="org-code">Код организации</label> <input type="text" class="form-control" name="org-code" id="org-code" required> </div> <!-- поле ввода кода преподавателя --> <div class="form-group"> <label for="teacher-code">Код преподавателя</label> <input type="text" class="form-control" name="teacher-code" id="teacher-code" required> </div> <?php endif; ?> <?php endif; ?> <!-- сообщение об ошибке --> <div class="text-danger d-none" id="error-message"><?php echo "true" == $_GET['singup'] ? 'Пароли не совпадают.' : 'Неправильная почта или пароль.'; ?></div> <!-- кнопки --> <div class="form-group mt-3 text-center"> <button type="submit" class="btn btn-primary"><?php echo "true" == $_GET['singup'] ? 'Зарегистрироваться' : 'Войти'; ?></button> <?php if (!isset($_GET['singup'])): ?> <!-- кнопки на регистрацию --> <a href="index.php?singup=true" class="btn btn-outline-secondary float-right">Регистрация</a> <?php else: ?> <!-- ссылка на вход --> <br> <a class="mt-3 opacity-75 text-dark" href="index.php">Уже зарегистрированы? Войти.</a> <?php endif; ?> </div> </form> </div> </div> </div> </div> </div> <!-- Тост-уведомление об ошибке отправки данных --> <div class="toast-container position-fixed bottom-0 end-0 p-3" style="z-index: 1200"> <div class="toast align-items-center text-white bg-danger border-0" role="alert" aria-live="assertive" aria-atomic="true"> <div class="d-flex"> <div class="toast-body">Ошибка отправки данных.</div> <button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Закрыть уведомление"></button> </div> </div> </div> <script src="/js/bootstrap.bundle.min.js"></script> <script src="/js/jquery-3.7.1.min.js"></script> <script> // Функция для отправки данных на сервер function sendLoginDataAjax(form) { $.ajax({ url: "db-manager.php", type: "POST", data: form.serialize(), }).done(function(response) { if (response == "success") { window.location.href = "main.php"; } else { showErrorMessage(); // Показать надпись о неправильном логине/пароле } }).fail(function() { showToastError(); }).always(function() { alert($("form").serialize()); }); } // Функция для валидации формы function validateForm() { return $("#confirm-password").val() == $("#password").val() && $("form")[0].checkValidity(); } // Показываем тост-уведомление об ошибке function showToastError() { $('.toast').toast('show'); } // Показываем надпись о неправильном логине/пароле function showErrorMessage() { $('#error-message').removeClass('d-none'); } // Устанавливаем отправку данных на форму и другие действия на остальные элементы $(document).ready(function() { $("form").submit(function(event) { event.preventDefault(); if (validateForm()) { sendLoginDataAjax($("form")); } else { showErrorMessage(); } }); // Показать пароль $('.btn-outline-secondary').on('click', function() { var input = $(this).siblings('input'); var eye = $(this).find('i'); input.attr('type', input.attr('type') == 'password' ? 'text' : 'password'); eye.toggleClass('bi-eye bi-eye-slash'); }); // Скрываем сообщение об ошибке при изменении полей формы $("form input").on("input", function() { $("#error-message").addClass("d-none"); }); // Переключение между типами пользователей при регистрации $("form select").on("change", function() { var urlParams = new URLSearchParams(window.location.search); urlParams.set('userType', $(this).val()); window.location.search = urlParams.toString(); }); }) </script> </body> </html>