Php 标题(“位置:”$url)在长url方面有问题

Php 标题(“位置:”$url)在长url方面有问题,php,redirect,header,steam,Php,Redirect,Header,Steam,我在一个网站上工作,正在使用steam openid,到目前为止没有问题。 问题是,当我试图将用户重定向到steam openid页面时,它不起作用,并将用户重定向到steamcommunity.com的根目录 代码如下: if (!isset($_SESSION['steamid']) && $_GET['a'] == "login") { $url = SteamSignIn::genUrl($_AMCFG['login_dir']); print($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
        }
    }
?>

标题
重定向之前不要打印任何内容


重定向可能在正确的位置执行,但在此之后,您将再次被重定向到主页,即
https://steamcommunity.com

标题
重定向之前不要打印任何内容


重定向可能在正确的位置执行,但在此之后,您将再次被重定向到主页,即
https://steamcommunity.com

标题
重定向之前不要打印任何内容


重定向可能在正确的位置执行,但在此之后,您将再次被重定向到主页,即
https://steamcommunity.com

标题
重定向之前不要打印任何内容



重定向可能在正确的位置执行,但在此之后,您将再次被重定向到主页,即
https://steamcommunity.com

嗯,“不太好”是什么意思?会发生什么?你有没有检查过这不是Steam的结尾重定向你?你不应该在更改标题之前打印我说过它会在没有/openid的情况下将我重定向到steamcommunity.com的根目录…正如Apul所说,在发送标题之前,你不能打印任何内容。但是,您是否已经使用FireBug之类的调试器检查了头是否正在发送,以及是否正在重定向?我认为Steam正在将你重定向到家中,并且你的重定向成功了。我应该向FireBug检查什么?我对PHP/HTML还是比较陌生的,这是我的第一个项目?会发生什么?你有没有检查过这不是Steam的结尾重定向你?你不应该在更改标题之前打印我说过它会在没有/openid的情况下将我重定向到steamcommunity.com的根目录…正如Apul所说,在发送标题之前,你不能打印任何内容。但是,您是否已经使用FireBug之类的调试器检查了头是否正在发送,以及是否正在重定向?我认为Steam正在将你重定向到家中,并且你的重定向成功了。我应该向FireBug检查什么?我对PHP/HTML还是比较陌生的,这是我的第一个项目?会发生什么?你有没有检查过这不是Steam的结尾重定向你?你不应该在更改标题之前打印我说过它会在没有/openid的情况下将我重定向到steamcommunity.com的根目录…正如Apul所说,在发送标题之前,你不能打印任何内容。但是,您是否已经使用FireBug之类的调试器检查了头是否正在发送,以及是否正在重定向?我认为Steam正在将你重定向到家中,并且你的重定向成功了。我应该向FireBug检查什么?我对PHP/HTML还是比较陌生的,这是我的第一个项目?会发生什么?你有没有检查过这不是Steam的结尾重定向你?你不应该在更改标题之前打印我说过它会在没有/openid的情况下将我重定向到steamcommunity.com的根目录…正如Apul所说,在发送标题之前,你不能打印任何内容。但是,您是否已经使用FireBug之类的调试器检查了头是否正在发送,以及是否正在重定向?我认为Steam正在将你重定向到家中,并且你的重定向成功了。我应该向FireBug检查什么?我对PHP/HTML还是比较陌生,这是我的第一个项目。打印是为了调试目的,即使没有它,我仍然有同样的问题。为什么steam会重定向我?如果我使用生成的url时,它工作正常,它必须是标题没有正确解释url,这很奇怪,因为当我手动添加它时,它工作正常。打印在这里是为了调试目的,即使没有它,我仍然有相同的问题。为什么steam会重定向我?如果我使用生成的url时,它工作正常,它必须是标题没有正确解释url,这很奇怪,因为当我手动添加它时,它工作正常。打印在这里是为了调试目的,即使没有它,我仍然有相同的问题。为什么steam会重定向我?如果我使用生成的url时,它工作正常,它必须是标题没有正确解释url,这很奇怪,因为当我手动添加它时,它工作正常。打印在这里是为了调试目的,即使没有它,我仍然有相同的问题。如果我使用生成的url时它工作正常,那么为什么steam会重定向我?它必须是标题没有正确解释url,这很奇怪,因为当我手动添加它时,它工作正常。