我正在编写一个带有ajax请求的简单变体程序:
$("#codeSbmt").click(function(){
var $input = $("#fourDigit");
codeCheck("codeTest.php?q=" + $input);
})
function codeCheck(url) {
var xhttp;
xhttp=new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("message").innerHTML = this.responseText
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
$q = $_REQUEST['q'];
if($q === $_SESSION['pl_code']){
$_SESSION['activated'] = true;
}else{
echo "Incorrect code";
}
我的困境是,无论什么PHP脚本返回else语句,这是“错误的代码”。我甚至用这样的虚拟数字替换了$ _SESSION:
if($q === 4949){
$_SESSION['activated'] = true;
}else{
echo "Incorrect code";
}
即使这样,它也会返回else语句。
答案 0 :(得分:-1)
var $input = $("#fourDigit"); codeCheck("codeTest.php?q=" + $input);
您正在对jQuery对象进行字符串化处理(这将为您提供类似"[object Object]"
的内容)。
您没有包含足够的HTML(始终提供[mcve]!),但您可能需要$input.val()
。
if($q === 4949){
$_REQUEST
中的数据将是字符串。将其与===
的数字进行比较将无法正常工作。