使用 URLSearchParams 传递的数据是 PHP 后端中的其他内容
Passed data with URLSearchParams is something other in PHP backend
我正在尝试通过调用后端来创建异步验证。我需要使用 let params = new URLSearchParams(); params.append('email', registerEmail);
传递数据,因为在其他方面 PHP 看不到 $_POST[email]
.
我附加到参数的 registerEmail
是 123@123.pl
.
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;
});
在后端我正在做 select 使用这个值做 db 之前 var_dump()
它。
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;
}
虽然我确信在我的数据库中我有一封电子邮件 123@123.pl
但找不到它并且它正在返回 true。
var_dump()
第一行中的函数返回 data: "string(10) \"email is: \"\nstring(25) \"[object HTMLInputElement]\"\n"
。我认为这并不完全是我想要的 123@123.pl
,这就是为什么我的 SELECT
找不到任何记录。
为什么?
就像你说的那样返回 object HTMLInputElement
,
那不好。
return axios.post('/api/auth/checkUnique.php', params, axiosConfig)
PHP 期望得到 <input name='email'>
或本例中的类似 params
必须是类型 json
{email: some@email.com}
还有你的问题。
我正在尝试通过调用后端来创建异步验证。我需要使用 let params = new URLSearchParams(); params.append('email', registerEmail);
传递数据,因为在其他方面 PHP 看不到 $_POST[email]
.
registerEmail
是 123@123.pl
.
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;
});
在后端我正在做 select 使用这个值做 db 之前 var_dump()
它。
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;
}
虽然我确信在我的数据库中我有一封电子邮件 123@123.pl
但找不到它并且它正在返回 true。
var_dump()
第一行中的函数返回 data: "string(10) \"email is: \"\nstring(25) \"[object HTMLInputElement]\"\n"
。我认为这并不完全是我想要的 123@123.pl
,这就是为什么我的 SELECT
找不到任何记录。
为什么?
就像你说的那样返回 object HTMLInputElement
,
那不好。
return axios.post('/api/auth/checkUnique.php', params, axiosConfig)
PHP 期望得到 <input name='email'>
或本例中的类似 params
必须是类型 json
{email: some@email.com}
还有你的问题。