Можно ли показать кнопку, когда пользователь вошел в систему на PHP?

Привет, можно ли скрыть кнопку, когда пользователь выходит из системы или когда пользователь входит в систему, кнопка будет отображаться? Я ищу в Google, там много упоминаний об этом. Используете пхп?

Ответ: ДА (вы спросили - возможно ли это)

Ken Lee 25.12.2020 09:59

Спасибо, есть ли какой-нибудь сценарий, который я могу прочитать, или код?

AR OFFICIAL TV 25.12.2020 10:00

Проверьте, вошел ли пользователь в систему или не использует if/else, и это должно быть легко. Мы не знаем вашего кода, поэтому не можем дать вам более подробный ответ.

M. Eriksson 25.12.2020 10:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
3
199
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы используете nodejs, вы можете использовать экспресс-сеанс: (https://www.tutorialspoint.com/expressjs/expressjs_sessions.htm) Там вы добавляете информацию о своем сеансе, например. res.locals = {логин: правда} Затем на стороне клиента вы можете сделать так, чтобы кнопка отображала либо вход в систему, либо выход из системы в соответствии со значением.

Другой вариант — использовать «ejs» для «handlebars» и отправлять информацию на ваши клиентские страницы независимо от того, видят ли они вход в систему или выход из нее. (https://ejs.co ) - ( https://handlebarsjs.com)

Пример использования сессий: В вашей части маршрутов вы помещаете что-то вроде этого:

//Login user
router.post('/login', redirectHome, async (req, res) => {
    try {
        const user = await User.findByCredentials(req.body.email, req.body.password)
        req.session.userId = user._id
        return res.status(200).redirect('/home')
    } catch (e) {
        res.render('login' ,{ title: 'Login', alert:{title: 'Login failed!', type: 'alert-danger', message: e } })
    }
})

router.post('/logout', redirectLogin, async (req, res) => {
    try {
        await req.session.destroy()
        await res.clearCookie('sid')
        await res.redirect('/login')
        
    } catch (e) {
        res.render('home', { title:'Home', alert:{ type: 'alert-warning', title:'Unable to logout', message: e}})
    }
})

Затем на ваш сервер вы добавляете промежуточное ПО следующим образом:

app.use(async (req, res, next)=> {
    const { userId } = req.session
    if (userId){
        res.locals.user = await User.findOne({_id:userId})
        
    } 
    next()
})

Теперь вы можете отправлять информацию на своем маршруте, поэтому, если на стороне клиента userId не определен, вы показываете логин, если он имеет значение, вы показываете выход из системы.

Надеюсь, это помогло.

Другие вопросы по теме

Как передать значение данных контроллера в пользовательскую функцию вложенного набора в блейд-файле Laravel
Php проверяет, прошло ли 24 часа в определенном часовом поясе
Как обновить общее количество с помощью ajax Laravel 8
Более простой способ создать пользовательскую директиву Laravel Blade, когда строка объединяется с переменными
Mysql, получить данные между двумя датами, если нет данных на начальную дату, мне нужно получить данные с последней введенной даты?
Фатальная ошибка: Исчерпан разрешенный объем памяти 536870912 байт (попытался выделить 262144 байта)
Как вывести переменную из локальной области и иметь возможность использовать эту переменную в другом представлении или других функциях в Swift, Xcode?
Получите Ajax для открытия модального окна, вызовите функцию PHP и поместите результаты в модальное окно
Один и тот же контроллер Laravel для разных типов пользователей
Модальное всплывающее окно через вызов ajax и функцию php, проблемы с передачей функций