Привет, я использую ниже Логин / Регистрация системы на моем сайте
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
сессия как другая переменная, потому что я требую, чтобы она использовалась и в некоторых других местах.
Либо использовать
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
}
что позволит избежать неопределенных предупреждений о смещении и потребует, чтобы вы определяли только один индекс за раз.
Других решений пока нет …