заголовок (& quot; местоположение: & quot;. $ url), имеющий проблемы с длинными URL

Я работаю над сайтом и использую 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
}
}
?>

0

Решение

Не печатайте ничего раньше header перенаправления. Читать док

Возможно, что перенаправление выполняется в правильном месте, но после этого вы снова будете перенаправлены на домашнюю страницу, т.е. https://steamcommunity.com

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]