Проверьте, активен ли аутентифицированный пользователь в сеансе Переполнение стека

Привет, я использую ниже Логин / Регистрация системы на моем сайте

1. Login via website (i.e. example.com)
2. Login via Facebook
3. Login via Twitter
4. Login via Google

Теперь, когда пользователь вошел через example.com Затем я устанавливаю значение в сессии, как показано ниже

session_start()
$_SESSION['auth_yes_exm'] = "Username from mySQL DB"

и когда пользователь вошел в систему через FB, Twitter или Google, то я установил значение в сеансе, как показано ниже

session_start()
$_SESSION['oauth_user'] = "Oauth Username"

Теперь есть страница Orders на котором я проверяю, аутентифицирован ли пользователь, затем показывает ему только детали заказа, и это применимо, как показано ниже:

session_start();
if(!(isset($_SESSION['auth_yes_exm']) && $_SESSION['auth_yes_exm']!='')){
header('location: login.php');
exit();
}

Как я могу также это проверить, если Oauth пользователь залогинен и покажет ему детали заказа?

Я попытался, как показано ниже, но он перенаправляет на login страница всегда

session_start();
if(!(isset($_SESSION['auth_yes_exm']) && $_SESSION['auth_yes_exm']!='') ||
!(isset($_SESSION['oauth_user']) && $_SESSION['oauth_user']!='')){
header('location: login.php');
exit();
}

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

0

Решение

Либо использовать

if($_SESSION['auth_yes_exm'] || $_SESSION['oauth_user']) {
//Show the page
}

при настройке любого индекса вы не хотите входить в систему как пользователь null когда вы назначаете другой индекс или используете это:

if(
(array_key_exists('auth_yes_exm', $_SESSION) && $_SESSION['auth_yes_exm']) ||
(array_key_exists('oauth_user', $_SESSION) && $_SESSION['oauth_user'])
) {
//Show the page
}

что позволит избежать неопределенных предупреждений о смещении и потребует, чтобы вы определяли только один индекс за раз.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]