2014-10-19 4 views
0

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

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 сеанс как различную переменную beacuse, я требую, чтобы она использовалась и в некоторых других местах.

+1

заменить ваш || оператор с && или $ _SESSION ['auth_yes_exm'] также задает эту переменную при входе в систему через FB, твиттер, google –

+0

Выполнено ... Спасибо .... Иногда ум дул, как anythng ... такое небольшое изменение :) – Gags

ответ

1

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

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 
} 

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