Я работаю над сайтом и использую Steam OpenID, пока никаких проблем.
Проблема в том, что когда я пытаюсь перенаправить пользователя на страницу Steam OpenID, он не работает и перенаправляет их в корень steamcommunity.com.
Вот код:
if (!isset($_SESSION['steamid']) && $_GET['a'] == "login") {
$url = SteamSignIn::genUrl($_AMCFG['login_dir']);
print($url);
header("Location: ".$url);
}
Сгенерированный URL отлично работает при вводе вручную, но перенаправление, как я уже сказал, не очень хорошо.
Я попытался вручную заменить $ url в заголовке, и он работает нормально.
header('Location: https://steamcommunity.com/openid/login?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=checkid_setup&openid.return_to=http%3A%2F%2Flocalhost%2Fadminmailer%2Findex.php&openid.realm=http%3A%2F%2Flocalhost&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select');
Я очень смущен тем, почему это не работает, как ожидалось.
В качестве временного исправления я добавил это в голову:
<?php
if (isset($_GET['a'])) {
if (!isset($_SESSION['steamid']) && $_GET['a'] == "login") {
$url = SteamSignIn::genUrl($_AMCFG['login_dir']);
?><meta http-equiv="refresh" content="0; url=<?php print($url); ?>" /><?php
}
}
?>
Не печатайте ничего раньше header
перенаправления. Читать док
Возможно, что перенаправление выполняется в правильном месте, но после этого вы снова будете перенаправлены на домашнюю страницу, т.е. https://steamcommunity.com
Других решений пока нет …