javascript - 如何检查用户名是否已经被ajax和sql使用?
问题描述
我正在尝试使用 ajax 检查数据库中是否存在用户名。我不知道为什么它不起作用我尝试了很多东西但仍然一无所获。
这是我实际尝试的代码。php 代码有效,但不将结果发送到 ajax 函数
html >注册.php
<input class="form-control" onblur="checkUser()" id="Pseudo" type="text name="Pseudo" value="" required>"
<span id="availability" name="availability" value=""> </span>
php >Welcome.php
if(!empty($_POST['Pseudo']))
{
$pseudo = $_POST['Pseudo'];
$connexion = mysqli_connect('localhost', 'root', '', 'database');
if(!$connexion)
{
die('Error during connexion ');
}
$sql = "SELECT * FROM Web_database WHERE Pseudo='$pseudo'";
$result = mysqli_query($connexion, $sql);
echo mysqli_num_rows($result);
}
Javascript > 注册.php
function checkUser()
{
var Pseudo = $('#Pseudo').val();
$.ajax({
url:'Welcome.php',
method:"POST",
data:{Pseudo:Pseudo},
success:function(data)
{
if(data == '0')
{
$('#availability').html('Pseudo correcte');
}
else
{
$('#availability').html('Pseudo déja utilisé');
}
}
});
}
解决方案
首先,您可能可以优化您的 SQL:
$sql = "SELECT COUNT(*) FROM Web_database WHERE Pseudo='$pseudo'"
而不是使用mysqli_num_rows()
.
除非您使用准备好的语句,否则您也会对 SQL 注入敞开心扉。
至于你的AJAX,好像没有错。我发现这个问题非常相似,所以你可能想检查一下。如有疑问,console.log()
请查看 PHP 的响应以查看实际返回的内容。或者更好的是,添加一个断点。
推荐阅读
- spring-boot - Spring Boot,无法从依赖项 jar 中读取 application.properties
- wso2 - WSO2 身份服务器 - 不断收到“内部错误 - 服务器连接终止”
- javascript - 在鼠标悬停时在 svg 中添加文本不起作用 d3.js
- java - 如何使用导航组件在活动中并排显示 2 个片段
- terraform - 在另一个模块或资源中使用输出
- swiftui - 如何在 SwiftUI 中的数组上使用 UserDefault
- firebase - 是否应该为 iOS Flutter 应用同时打开所有 Firebase 通知?
- node.js - 一个 nodejs/express 应用程序只能在 localhost 上运行,但不使用 IP 地址,另一个 nodejs/express 应用程序可以正常工作吗?
- amazon-ec2 - 如何使用 saltstack 获取现有的 ec2 实例卷大小
- java - Tomcat:执行期间出错:java.lang.NoClassDefFoundError: javax/servlet/GenericFilter