Как настроить вывод данных по авторизации пользователя?

Ссылка скопирована
1 ответ

Всем привет. Сделал авторизацию на сайте 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;

На выводе получаю первый логин из моей таблицы. Подскажите, что делаю не так и как это исправить?

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Елена Вебер Ответ

Для настройки вывода данных по авторизации пользователя вам необходимо сначала убедиться, что пользователь успешно авторизован на вашем сайте. Это может быть реализовано с помощью сессий, куки или других методов аутентификации.

После того, как пользователь успешно авторизован, вы можете использовать данные о пользователе для вывода информации на странице. Например, вы можете показать приветствие с именем пользователя или отобразить их 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 'Пользователь не авторизован';
}

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-инъекций.

Надеюсь, этот ответ поможет вам настроить вывод данных по авторизации пользователя на вашем сайте. Если у вас возникнут дополнительные вопросы, не стесняйтесь их задавать!

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно