首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蒸汽登录Lightopenid

蒸汽登录Lightopenid
EN

Stack Overflow用户
提问于 2015-11-15 23:36:19
回答 1查看 1.7K关注 0票数 0

我用steam为我的登录创建了一个index.php,让用户使用steam登录我的网站,以获得像他们的名字、头像和steam id这样的信息,我有的问题是数据没有发送到我的数据库中,我已经制作了一个包含所有正确细节的db.php文件,只是它没有存储在我的数据库中。

代码语言:javascript
复制
$db = mysql_connect("localhost", "username", "password");
$db = mysql_select_db("mydbname");



echo "
                <br/>SmallAvatar: <img src='$player->avatar'/>
                <br/>Player ID: $player->steamid
                <br/>Player Name: $player->personaname
                <br/>Profile URL: $player->profileurl 
                ";
            $sql_fetch_id = "SELECT * FROM users_steam WHERE steamid = '$player->steamid'";
            $query_id = mysqli_query($db, $sql_fetch_id);

            $_SESSION['name'] = $player->personaname;
            $_SESSION['steamid'] = $player->steamid;
            $_SESSION['avatar'] = $player->avatar;

            if (mysqli_num_rows($query_id) == 0) {
                $sql_steam = "INSERT INTO users_steam (name, steamid, avatar) VALUES  ('$player->personaname', '$player->steamid', '$player->avatar')";
                mysqli_query($db, $sql_steam);
            }
EN

回答 1

Stack Overflow用户

发布于 2015-11-15 23:56:39

试试这个:

代码语言:javascript
复制
require 'openid.php';

include_once("db.php");

$_STEAMAPI = "";

try {
    $openid = new LightOpenID('www.audiochat.xyz/index.php');
    if(!$openid->mode) {
        if(isset($_GET['login'])) {
            $openid->identity = 'http://steamcommunity.com/openid/?l=english';
            header('Location: ' . $openid->authUrl());
        } else {
            echo "<h2>Connect to Steam</h2>";
            echo "<form action='?login' method='post'>";
            echo "<input type='image' src='http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_small.png'>";
            echo "</form>";
        }
    } elseif($openid->mode == 'cancel') {
        echo 'User has canceled authentication!';
    } else {
        if($openid->validate()) {
            $id = $openid->identity;
            $ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
            preg_match($ptn, $id, $matches);

            $url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$_STEAMAPI&steamids=$matches[1]";
            $json_object= file_get_contents($url);
            $json_decoded = json_decodemysql_select_db($json_object);

        foreach ($json_decoded->response->players as $player)
        {
                $sql_fetch_id = "SELECT * FROM users_steam WHERE steamid = $player->steamid";
                $query_id = mysqli_query($db, $sql_fetch_id);

                if (mysqli_num_rows($query_id) == 0) {
                    $sql_steam = "INSERT INTO users_steam (name, steamid, avatar) VALUES  ('$player->personaname', '$player->steamid', '$player->avatar')";
                    mysqli_query($db, $sql_steam);
                }
            }
        } else {
                        echo "User is not logged in.\n";
        }
    }
} catch(ErrorException $e) {
    echo $e->getMessage();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33721472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档