所以我正在使用Steam API(不应该与问题有关)。
在我的主页面上,我正在检查用户是否使用以下代码保存在数据库中的authcode:
$userAuth = getAuth($steamprofile['steamid']);
if($userAuth == false){
?>
<script>
promptAuth(<?php echo($steamprofile['steamid']);?>);
</script>
<?php
}
$ userAuth返回false或true(取决于数据库是否保存了auth代码)。
如果返回false(未保存/设置),则调用javascript函数:
function promptAuth(steam64){
bootbox.prompt({
title: "Enter your Auth Code",
value: "",
callback: function(result){
if(result === null){
Example.show("Prompt Dismissed");
}
else{
qwest.post('processor.php', {
user_steam64: steam64,
user_auth: result
})
.then(function (xhr, response){
console.log(response);
});
}
}
});
}
steam64是用户ID,我使用bootbox进行提示和对话。
我正在使用qwest进行Ajax调用。
因此它将POST请求发送到processor.php文件并发布两个变量:
user_steam64:用户的ID。
user_auth:用户输入的内容。
这是process.php:
<?php
if(isset($_POST['user_auth'])){
require 'steamauth/steamauth.php';
include ('steamauth/userInfo.php');
if($_POST['user_steam64'] == $steamprofile['steamid']){
echo("ok");
}
else{
echo("not ok, received: ".$_POST['user_steam64'].", actual: ".$steamprofile['steamid']);
}
}
?>
它基本上检测POST变量user_auth,然后使用实际的steam64验证发送的steam64(以确保某人没有修改steam64。
但是有一个问题:
每当我测试它时,我得到:
不行,收到:XXXXXXXXXXXXX240,实际:XXXXXXXXXXXXX0233
将我的实际steamID替换为XXX,因为这些部分始终相同,结尾总共有7个计数差异。
我知道这很简单,但我无法弄明白,从PHP调用JS函数是否存在问题?