На моём сайте стояла авторизация steam она работала,но я решил сделать авторизацию вк и почему то все данные получаю а в базу данных они не идут и на - вопрос №2364643

сайте не происходит авторизация.Сайт: 62.109.28.42/main.Подскажите что не так.Оба кода внизу. Код авторизации steam: include 'openid.php'; try { $openid = new LightOpenID('http://'.$_SERVER['SERVER_NAME'].'/'); if (!$openid->mode) { $openid->identity = 'http://steamcommunity.com/openid/?l=russian'; header('Location: '. $openid->authUrl()); } elseif ($openid->mode == 'cancel') { echo ''; } else { if ($openid->validate()) { $id = $openid->identity; $ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/"; preg_match($ptn, $id, $matches); $url = «api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=AA2020BAD5C8B0B691F898D54464C5D8&steamids=$matches[1]»; $json_object = file_get_contents($url); $json_decoded = json_decode($json_object); foreach ($json_decoded->response->players as $player) { $steamid = $player->steamid; $name = htmlentities($player->personaname); $avatar = $player->avatar; } $hash = md5($steamid. time(). rand(1, 50)); $sql = $db->query(«SELECT * FROM `users` WHERE `steamid` = '». $steamid. "'"); $row = $sql->fetchAll(PDO::FETCH_ASSOC); if (count($row) == 0) { $db->exec(«INSERT INTO `users` (`hash`, `steamid`, `name`, `avatar`) VALUES ('». $hash. "', '". $steamid. "', ". $db->quote($name). ", '". $avatar. "')"); } else { $db->exec(«UPDATE `users` SET `hash` = '». $hash. "', `name` = ". $db->quote($name). ", `avatar` = '". $avatar. "' WHERE `steamid` = '". $steamid. "'"); } setcookie('hash', $hash, time() + 3600 * 24 * 7, '/'); header('Location: /main'); } } } catch (ErrorException $e) { exit($e->getMessage()); } break; Код авторизации вк: $client_id = '5895267'; // ID приложения $client_secret = 'A2YaWuVknheGz4Oo6h5V'; // Защищённый ключ $redirect_uri = 'http://62.109.28.42/main'; // Адрес сайта $url = 'http://oauth.vk.com/authorize'; $params = array( 'client_id' => $client_id, 'redirect_uri' => $redirect_uri, 'response_type' => 'code' ); header('Location: oauth.vk.com/authorize?'.urldecode(http_build_query($params))); exit; if (isset($_GET['code'])) { $result = false; $params = array( 'client_id' => $client_id, 'client_secret' => $client_secret, 'code' => $_GET['code'], 'redirect_uri' => $redirect_uri ); $token = json_decode(file_get_contents('https://oauth.vk.com/access_token'. '?'. urldecode(http_build_query($params))), true); if (isset($token['access_token'])) { $params = array( 'uids' => $token['user_id'], 'fields' => 'uid,first_name,last_name,screen_name,sex,bdate,photo_big', 'access_token' => $token['access_token'] ); $userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get'. '?'. urldecode(http_build_query($params))), true); if (isset($userInfo['response'][0]['uid'])) { $userInfo = $userInfo['response'][0]; $result = true; } } if ($result) { $hash = md5($token['user_id']. time(). rand(1, 50)); $sql = $db->query(«SELECT * FROM `users` WHERE `steamid` = '». $token['user_id']. "'"); $row = $sql->fetchAll(PDO::FETCH_ASSOC); if (count($row) == 0) { $db->exec(«INSERT INTO `users` (`hash`, `steamid`, `name`, `avatar`) VALUES ('». $hash. "', '". $token['user_id']. "', ". $userInfo['first_name']. ", '". $userInfo['photo_big']. "')"); } else { $db->exec(«UPDATE `users` SET `hash` = '». $hash. "', `name` = ". $userInfo['first_name']. ", `avatar` = '". $userInfo['photo_big']. "' WHERE `steamid` = '". $token['user_id']. "'"); } setcookie('hash', $hash, time() + 3600 * 24 * 7, '/'); header('Location: /main'); } } break;
11.03.17
1 ответ

Ответы

Здравствуйте.
Код в нечитаемом виде.
Пишите в чат и приготовьте исходник, посмотреть.
Услуга платная.
12.03.17

Alexander

Читать ответы

Дима

Читать ответы
Посмотреть всех экспертов из раздела Технологии > PHP
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store