Chrome 操纵 Javascript 参数?
Chrome manipulates Javascript parameter?
长话短说:我正在做一个项目,在通过 Steam 的 OpenID 登录后查找包含您的 Steam ID 的数据库条目。
我用 PHP 获得了 Steam ID,效果很好(我得到了正确的 ID)。获得 ID 后,我通过 JavaScript 将其转换为另一种 ID。这也有效..基本上。
现在越来越奇怪了。如果我在输入字段中输入 Steam ID 并让 JavaScript 转换它,一切都很好。但是使用 Steam 登录不起作用。登录获得正确的 id(用回显线测试),但是当我将 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;
}
解决方案是将ID作为字符串传递,我只是忘了设置引号:
if(!isset($_GET['steamID']) && !isset($_GET['armaID'])) {
$steamID = SteamSignIn::validate();
echo '<script language="JavaScript">
forwardSteamLogin("'.$steamID.'");
</script>';
return;
}
感谢@FelixKling。
长话短说:我正在做一个项目,在通过 Steam 的 OpenID 登录后查找包含您的 Steam ID 的数据库条目。
我用 PHP 获得了 Steam ID,效果很好(我得到了正确的 ID)。获得 ID 后,我通过 JavaScript 将其转换为另一种 ID。这也有效..基本上。
现在越来越奇怪了。如果我在输入字段中输入 Steam ID 并让 JavaScript 转换它,一切都很好。但是使用 Steam 登录不起作用。登录获得正确的 id(用回显线测试),但是当我将 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;
}
解决方案是将ID作为字符串传递,我只是忘了设置引号:
if(!isset($_GET['steamID']) && !isset($_GET['armaID'])) {
$steamID = SteamSignIn::validate();
echo '<script language="JavaScript">
forwardSteamLogin("'.$steamID.'");
</script>';
return;
}
感谢@FelixKling。