我正在尝试将从数据库中检索到的所有电子邮件插入字符串中,因此我可以使用javascript检查用户在表单字段中键入的电子邮件是否已经注册。我正在尝试使用json_encode()。
$conectar = mysqli_connect(HOST, USER, PASS, DATABASE);
$listarCorreos = " SELECT userEmail
FROM usuarios
";
$resultado = mysqli_query($conectar,$listarCorreos);
$arrayEmails = mysqli_fetch_array($resultado);
foreach($arrayEmails as $row){
$emails[]=array($row['userEmail']);
}
echo json_encode($emails);
现在,我收到了这个错误:
警告:/home/verificarEmail.php中的非法字符串偏移'userEmail' 在第21行
第21行是$emails[]=array($row['userEmail']);
我做错了什么?
我也在尝试:
$resultado = mysqli_query($conectar,$listarCorreos);
$emails = array();
while($row = mysql_fetch_assoc($resultado)) {
$emails[] = $row;
}
echo json_encode($emails);
我收到了这个错误:
警告:mysql_fetch_assoc()期望参数1是资源, 第18行/home/verificarEmail.php中给出的对象
第18行:while($row = mysql_fetch_assoc($resultado)) {
答案 0 :(得分:1)
使用this
,如下所示
MYSQLI_ASSOC
答案 1 :(得分:1)
那里有一些问题。要将您的电子邮件放入数组中,请执行以下操作:
$resultado = mysqli_query($conectar,$listarCorreos);
if(!resultado) die($mysqli_error($conectar));//check for errors
$emails = mysqli_fetch_all($resultado);//fetch all results
echo json_encode($emails);
这应该让您的代码正常工作或向您显示错误。但是,请不要这样做。
所以我可以使用javascript来检查用户输入的电子邮件是否成了 表单字段已注册
这是一个可怕的想法安全明智,因为它会暴露所有用户'发送电子邮件给那些甚至没有注册到您网站的人。您应该直接在DB中查找所需的用户名。如果它不存在,那么之前它还没有注册过。 Javascript方面只应获得available
或not available
响应。
过程(伪代码):
SELECT userEmail from usarios WHERE userEmail = ?
?是要查找的电子邮件$resultado
$resultado
为false,die(mysqli_error($conectar))
显示错误mysqli_num_rows($resultado) === 0
电子邮件是available
;别的not available
available
或not available
到Javascript 答案 2 :(得分:0)
use the code like below
$conectar = mysqli_connect(HOST, USER, PASS, DATABASE);
$listarCorreos = " SELECT userEmail
FROM usuarios
";
$resultado = mysqli_query($conectar,$listarCorreos);
while ( $row = mysqli_fetch_array($resultado) ) {
$emails[]=$row['userEmail'];
}
echo json_encode($emails);
答案 3 :(得分:-1)
使用如下代码 $ conectar = mysqli_connect(HOST,USER,PASS,DATABASE); $ listarCorreos =“SELECT userEmail 来自usuarios “; $ resultado = mysqli_query($ conectar,$ listarCorreos);
while ( $row = mysqli_fetch_array($resultado) ) {
$emails[]=$row['userEmail '];
}
echo json_encode($ emailils);