私はAJAX呼び出しを実行しています。これはPHP関数のようにPHP関数から返された変数を取ります。Javascript/PHP文字列の等価性
AJAX:
$.ajax ({
type: "POST",
url: "loginrequest.php",
data: 'username=' + username + '&password=' +pass,
success: function(html){
console.log(html); // returns login
console.log(typeof html); // returns string
console.log(html === "login"); //returns false
if(html === 'login'){
window.location.href = 'index.php';
}
else if(html === 'false'){
alert("login failed");
}
}
});
PHP:あなたは、私はシンプルなログインページを実装し、ユーザーをリダイレクトするかの結果に応じて警告を表示しようとして見ることができるように
if($count == 1){
$_SESSION['user'] = $myusername;
$return = "login";
echo json_encode($return);
}
else {
$return = "false";
echo json_encode($return);
}
私のデータベースクエリから返された行の数
は、私が理解していないことはこれです:
console.log(html); // returns "login"
console.log(typeof html); // returns string
console.log(html === "login"); //returns false
私はjson_encode()
なしエコーINGを試してみましたが、それはまだ私に同じ結果を与えるだろう。私は==
を使用していましたが、===
を使用する方が安全だと読んだので、それに切り替えましたが、それでもそれは真実を返しません。
'はconsole.log(html.trim()=== "ログイン")してみてください、すぐに問題を解決するには、'。 'trim()'は、プレーンテキストを扱うときにレスポンスに追加できる余分な空白を削除します。改善のために、代わりにJSONを返して、問題を完全に回避してください。 –
'json_encode'は' ''を文字列に追加するので、実際には引用符で '' login "'があります。[https://eval.in/600312](https://eval.in/600312) ) – FirstOne
生成された 'json'の簡単な 'var_dump'は問題を簡単に示していました;) – FirstOne