Как настроить вывод данных по авторизации пользователя?
Всем привет. Сделал авторизацию на сайте apex.oracle.com, вот её код:
FUNCTION check_authen (p_username in VARCHAR2, p_password in NVARCHAR2) RETURN BOOLEAN AS x NUMBER := 0; BEGIN SELECT 1 INTO x FROM system_user JOIN user_password ON system_user.user_id = user_password.user_id JOIN user_adm_level ON system_user.user_id = user_adm_level.user_id JOIN admin_level ON admin_level.adm_level_id = user_adm_level.adm_level_id WHERE UPPER(system_user.user_login) = UPPER(p_username) AND user_password.password = p_password AND admin_level.adm_level_id = :P9999_STATUS AND system_user.is_activated = '1'; SELECT :P9999_STATUS INTO :p_admin_level FROM dual; RETURN TRUE; EXCEPTION WHEN NO_DATA_FOUND THEN RETURN FALSE; END check_authen; |
FUNCTION check_authen (p_username in VARCHAR2, p_password in NVARCHAR2) RETURN BOOLEAN AS x NUMBER := 0; BEGIN SELECT 1 INTO x FROM system_user JOIN user_password ON system_user.user_id = user_password.user_id JOIN user_adm_level ON system_user.user_id = user_adm_level.user_id JOIN admin_level ON admin_level.adm_level_id = user_adm_level.adm_level_id WHERE UPPER(system_user.user_login) = UPPER(p_username) AND user_password.password = p_password AND admin_level.adm_level_id = :P9999_STATUS AND system_user.is_activated = '1'; SELECT :P9999_STATUS INTO :p_admin_level FROM dual; RETURN TRUE; EXCEPTION WHEN NO_DATA_FOUND THEN RETURN FALSE; END check_authen;
Мне нужно сделать так, чтобы когда пользователь авторизуется ему в личном кабинете выводился логин. Вывести логин у меня получилось, но только неправильно. Запрос берет первую строчку с таблицы, не пойму как привязать её к конкретному пользователю. Вот мой sql запрос:
SELECT system_user.USER_LOGIN FROM system_user JOIN user_adm_level ON system_user.user_id = user_adm_level.user_id AND user_adm_level.adm_level_id = :p_admin_level; |
SELECT system_user.USER_LOGIN FROM system_user JOIN user_adm_level ON system_user.user_id = user_adm_level.user_id AND user_adm_level.adm_level_id = :p_admin_level;
На выводе получаю первый логин из моей таблицы. Подскажите, что делаю не так и как это исправить?
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для настройки вывода данных по авторизации пользователя вам необходимо сначала убедиться, что пользователь успешно авторизован на вашем сайте. Это может быть реализовано с помощью сессий, куки или других методов аутентификации.
После того, как пользователь успешно авторизован, вы можете использовать данные о пользователе для вывода информации на странице. Например, вы можете показать приветствие с именем пользователя или отобразить их email.
Вот пример использования данных авторизации пользователя в PHP:
session_start(); if(isset($_SESSION['user_id'])) { $user_id = $_SESSION['user_id']; // Получение данных о пользователе из базы данных $sql = "SELECT * FROM users WHERE id = $user_id"; $result = mysqli_query($connection, $sql); if(mysqli_num_rows($result) > 0) { $user = mysqli_fetch_assoc($result); echo 'Привет, ' . $user['username'] . '! Ваш email: ' . $user['email']; } else { echo 'Пользователь не найден'; } } else { echo 'Пользователь не авторизован'; }
В этом примере мы сначала проверяем, что пользователь авторизован (путем проверки наличия идентификатора пользователя в сессии), затем получаем данные о пользователе из базы данных и выводим их на странице.
Не забудьте настроить соединение с базой данных и обработку ошибок, чтобы ваш код работал корректно. Также следует убедиться, что данные пользователя хранятся в безопасном виде и защищены от SQL-инъекций.
Надеюсь, этот ответ поможет вам настроить вывод данных по авторизации пользователя на вашем сайте. Если у вас возникнут дополнительные вопросы, не стесняйтесь их задавать!