バックエンドへの呼び出しで非同期検証を作成しようとしています。 let params = new URLSearchParams(); params.append('email', registerEmail);
を使用してデータを渡す必要があります。なぜなら、PHPでは$_POST[email]
が表示されないからです。URLSearchParamsで渡されたデータは、PHPバックエンドでは他のものです
registerEmail
私がparamsに追加するのは[email protected]
です。バックエンドで
let params = new URLSearchParams();
params.append('email', registerEmail);
return axios.post('/api/auth/checkUnique.php', params, axiosConfig)
.then(res => {
console.log('true');
console.log(res);
return true;
})
.catch(res => {
console.log('false');
console.log(res);
return false;
});
私は、この値と前var_dump()
それをして、DBかの選択をやっています。私はデシベルで、私は1つの電子メール[email protected]
を持っていることを確信しているものの
var_dump('email is: ');
var_dump($_POST['email']);
$query = "
SELECT
*
FROM
" . $this->table_name . "
WHERE
nick = ?
OR
email = ?
";
// prepare query statement
$stmt = $this->conn->prepare($query);
// bind params
$stmt->bindParam(1, $nick);
$stmt->bindParam(2, $email);
// execute query
$stmt->execute();
//count if there is any
$num = $stmt->rowCount();
if ($num > 0)
{
return false;
}
else
{
return true;
}
そして、それはそれを見つけることができない、それはtrueを返します。
var_dump()
最初の行の関数がdata: "string(10) \"email is: \"\nstring(25) \"[object HTMLInputElement]\"\n"
を返しています。私はそれがexaclyではないと思う[email protected]
私はしたいと私はSELECT
レコードを見つけることができない理由です。
なぜですか?
どうすれば修正できますか? – BT101
json '{email:"いくつかの@ email、com "}'の代わりに 'params'や' registerEmail'は渡すようにしてください。あなたは 'console.log(registerEmail)'を実行できますか? – maki10
よく 'console.log(registerEmail)'私はそれが入力から値ではないことを知りました。 'input id =" registerEmail "class =" form -control "data-v-55be22a9 =" "プレースホルダー=" [email protected] "必須="必須 "type =" email "> – BT101