Chrome操纵Javascript参数?

时间:2017-04-19 01:02:50

标签: javascript php jquery google-chrome microsoft-edge

长话短说:我正在通过Steam的OpenID登录后查找包含您的Steam ID的数据库条目。

我使用PHP获取Steam ID,效果很好(我得到了正确的ID)。获取ID后,我将通过JavaScript将其转换为另一种ID。这也很有效。基本上。

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

PHP:

if(!isset($_GET['steamID']) && !isset($_GET['armaID'])) {
    $steamID = SteamSignIn::validate();
    //Steam ID is correct here
    echo "<script>
    forwardSteamLogin(".$steamID.");
    </script>";
    //Steam ID still correct afterwards
    return;
}

JS:

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;
}

1 个答案:

答案 0 :(得分:1)

解决方案是将ID传递给String,我忘了设置引号:

if(!isset($_GET['steamID']) && !isset($_GET['armaID'])) {
    $steamID = SteamSignIn::validate();
    echo '<script language="JavaScript">
                forwardSteamLogin("'.$steamID.'");
            </script>';
    return;
}

感谢@FelixKling。