Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка наличия поля и авторизация

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
No0k
Отправлено: 18 Февраля, 2015 - 12:09:48
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




Добрый день. Делаю авторизацию через Steam.
Цитата:
Логика:
Пользователь входит через steam, я получаю его steam_id, мне надо найти этот steam_id в уже зарегистрированных пользователях и есть есть, то авторизировать, если нет, то создать пользователя.

PHP:
скопировать код в буфер обмена
  1. public function SteamAuth() {
  2.         try {
  3.  
  4.             require ('openid.php');
  5.             $openid = new LightOpenID('shop');
  6.             if (!$user_id) {
  7.                 if (!$openid->mode) {
  8.                     if (isset($_GET['login'])) {
  9.                         $openid->identity = 'http://steamcommunity.com/openid';
  10.                         header('Location: ' . $openid->authUrl());
  11.                     }
  12.                     echo "<form action=\"?login\" method=\"post\"> <input type=\"image\" src=\"http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_small.png\"></form>";
  13.                 }
  14.                 elseif ($openid->mode == 'cancel') {
  15.                     echo Core::msg_show(__('SteamСanceledAuthentication'));
  16.                 }
  17.                 else {
  18.                     if ($openid->validate()) {
  19.                         $id = $openid->identity;
  20.                         $ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
  21.                         $_SESSION['steamid'] = $matches[1];
  22.                         preg_match($ptn, $id, $matches);
  23.                         $valid = new Validator($_SESSION['steamid'], array('steamid' => 'Индетификатор'));
  24.                         $rules = array($_SESSION['steamid'], 'in_list', array('table' => 'user', 'row' => 'steamid'));
  25.                         if ($valid->check($rules) == TRUE) {
  26.                             //тут пользователь есть, надо найти его id и авторизировать
  27.                            
  28.                         }
  29.                         else {
  30.                        
  31.                         }
  32.                     }
  33.                     else {
  34.                         echo Core::msg_show(__('SteamBadCheck'));
  35.                     }
  36.                 }
  37.             }
  38.         } catch (ErrorException $e) {
  39.             echo $e->getMessage();
  40.         }
  41.     }
  42.  

Я вот нашел его steam_id и хочу авторизировать через его id, но как взять id не знаю. Подскажите пожалуйста. Или же другую логику, если есть лучше.

(Отредактировано автором: 18 Февраля, 2015 - 12:10:51)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB