2013-12-09 4 views
1

Я использую открытый идентификатор Steam, чтобы пользователи могли войти на мой сайт. Вот что у меня есть сейчас. Просто я не получил это из учебника и изменил его в соответствии с моими потребностями.Steam Openid login

<?php 
include "apikey.php"; 
include "OpenID.php"; 
    $link = mysql_connect('', '', '', ' '); 
if (!$link) { 
die('Could not connect: ' . mysql_error()); 
} 
echo 'Connected successfully'; 



$OpenID = new LightOpenID("MyWebsite"); 

session_start(); 

if(!$OpenID->mode) { 

    if(isset($_GET['login'])) { 

     $OpenID->identity = "http://steamcommunity.com/openid"; 
     header("Location: {$OpenID->authUrl()}"); 
    } 

    if(!isset($_SESSION['T2SteamAuth'])){ 
     $login = print ('<form action="?login" method="post"> 
    <input type="image" src="http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_large_border.png"/> 
    </form>'); 
    } 

} elseif($OpenID->mode == "cancel") { 
    echo "canceled"; 
} else { 
    if(!isset($_SESSION['T2SteamAuth'])) { 

     $_SESSION['T2SteamAuth'] = $OpenID->validate() ? $OpenID->identity : null; 
     $_SESSION['T2SteamID64'] = str_replace("http://steamcommunity.com/openid/id", "", $_SESSION['T2SteamAuth']); 


     if($_SESSION['T2SteamAuth'] !== null) { 

      $Steam64 = str_replace("http://steamcommunity.com/openid/id", "", $_SESSION['T2SteamAuth']); 
      $profile = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={$api}&steamids={$Steam64}"); 
      $buffer = fopen("cache/{Steam64}.json". "w+"); 
      fwrite($buffer, $profile); 
      fclose($buffer); 
      } 
      header("Location: login3.php"); 
    } 

} 
    if(isset($_SESSION['T2SteamAuth'])) { 
    $Steam64id = $_SESSION['T2SteamAuth']; 
    print($Steam64id); 
$sql = "INSERT INTO ``.`` (`id`) VALUES ('$Steam64id')"; 
mysql_query($sql, $link); 
mysql_close($link); 
print('<form action = "?logout" method="post"><button title="logout"   name="logout">Logout</button></form>'); 
} 
if(isset($_GET['logout'])) { 
    unset($_SESSION['T2SteamAuth']); 
    unset($_SESSION['T2SteamID64']); 
    header("Location: login3.php"); 
} 



?> 

Этот код позволяет пользователям регистрироваться на моем сайте, а их идентификатор отправляется в мою базу данных. Я хочу, чтобы эти пользователи могли использовать форум. Я загрузил плагин форума и открыл его, но по какой-то причине мой код не позволяет пользователям использовать мой форум, и я не знаю почему. Чтобы пользователи могли использовать мой форум, им нужно перейти на wp-login.php и ввести https://steamcommunity.com/openid/login, а затем войти в систему таким образом, отдельно от моего кода. Я хотел бы, чтобы этот код позволял пользователям заходить на форум. Любая помощь будет большой. Спасибо

ответ

0

Для команды header() для работы не должно выводиться HTML. Даже самое маленькое пространство может помешать перенаправлению.

Я знаю, что это поздний ответ, но я надеюсь, что это поможет кому-то.

Смежные вопросы