Chrome操纵Javascript参数?

Chrome操纵Javascript参数?,javascript,php,jquery,google-chrome,microsoft-edge,Javascript,Php,Jquery,Google Chrome,Microsoft Edge,长话短说:我正在做一个项目,在通过Steam的OpenID登录后,查找包含Steam ID的数据库条目 我用PHP获得Steam ID,它工作得很好(我得到了正确的ID)。在获得ID后,我将通过JavaScript将其转换为另一种ID。这也可以…基本上 现在它变得奇怪了。如果我输入带有输入字段的Steam ID,并让JavaScript对其进行转换,那么一切都很好。但是使用Steam登录不起作用。登录名获得了正确的id(使用回音行进行测试),但当我将id作为参数提供给JavaScript时,它实

长话短说:我正在做一个项目,在通过Steam的OpenID登录后,查找包含Steam ID的数据库条目

我用PHP获得Steam ID,它工作得很好(我得到了正确的ID)。在获得ID后,我将通过JavaScript将其转换为另一种ID。这也可以…基本上

现在它变得奇怪了。如果我输入带有输入字段的Steam ID,并让JavaScript对其进行转换,那么一切都很好。但是使用Steam登录不起作用。登录名获得了正确的id(使用回音行进行测试),但当我将id作为参数提供给JavaScript时,它实际上是id+10,我不知道为什么。有趣的是,这只发生在Chrome和Firefox中,微软Edge做的一切都是正确的,但是Chrome和Firefox将ID提高了10

PHP:


解决方案是将ID作为字符串传递,我只是忘记设置引号:

if(!isset($_GET['steamID']) && !isset($_GET['armaID'])) {
    $steamID = SteamSignIn::validate();
    echo '<script language="JavaScript">
                forwardSteamLogin("'.$steamID.'");
            </script>';
    return;
}
if(!isset($获取['streamid'])和&!isset($获取['armaID'])){
$streamid=streamSignin::validate();
回声'
forwardSteamLogin(“.$steamID.”);
';
回来
}

感谢@FelixKling的帮助。

JavaScript只支持53位整数。如果蒸汽ID大于2^53,则会失去精度。我只能猜测这就是问题所在。将一个字符串传递给JavaScript,因为没有理由需要它是一个数字。您是否检查了打印的JavaScript代码?参数是正确的id还是增加的?@FelixKling谢谢。我知道JavaScript无法将其作为整数处理,但只是忘记了将其作为字符串传递的引号。
function forwardSteamLogin(uid) {
    //UID / SteamID magically increased by 10 in FF and Chrome, but still correct in Edge
    var guid = getUid(uid);
    var urlToDirect = "?steamID="+uid+"&armaID="+guid;
    window.location.href = urlToDirect;
}
if(!isset($_GET['steamID']) && !isset($_GET['armaID'])) {
    $steamID = SteamSignIn::validate();
    echo '<script language="JavaScript">
                forwardSteamLogin("'.$steamID.'");
            </script>';
    return;
}