gpt4 book ai didi

jquery - 使用AJAX检查数据库中是否存在用户名

转载 作者:行者123 更新时间:2023-12-03 22:31:37 25 4
gpt4 key购买 nike

我想在我的注册表中添加一项功能,我将检查该用户名是否已存在于数据库中。

我有一些关于 AJAX 的问题 -

  1. 我想创建一个 AJAX 请求 on_change 函数,所以像这样 -

    $('#username').change(function() {
    $.ajax({
    url: "validation.php"
    });
    });

    所以,据我了解,我必须在validation.php 文件中使用 PHP 进行所有验证,对吗?是否需要任何特殊验证,或者只是使用 sql 语句进行简单验证 - SELECT * FROM 'users' WHERE 'username' = '. $_POST['用户名'];

  2. 据我了解,我也必须通过 $.ajax 传递 POST 值,对吗?如果是,我如何通过validation.php文件访问它们?

  3. 在validation.php文件中获得结果后,如何将它们传回(真或假——存在或不存在)?我需要将它们传回,然后进行 if 检查,如果为真 - 显示用户名已存在的错误,否则,不显示任何内容?

最佳答案

在继续之前,SELECT * FROM 'users' WHERE 'username' = '. $_POST['username']; 只是请求 SQL 注入(inject)。我建议您使用PHP Data objects .

So as I understood I must pass the POST values via $.ajax too, correct? If yes, how I will be able to access them via validation.php file?

因为这是一个简单的请求,所以我建议您使用JQuery的方法$.post()。这是一个基于您想要执行的操作的示例。

$.post('validation.php',{username: $('#username').val()}, function(data){
if(data.exists){
//tell user that the username already exists
}else{
//username doesn't exist, do what you need to do
}
}, 'JSON');

jQuery 的 post 方法有 4 个参数$.post(url, data,callback, datatype)。在上面的示例中,我们将使用 $('#username').val() 将用户名发布到 validation.php 并期望 JSON响应。当请求完成时,回调函数将被执行,data作为请求的响应。因为我们指定该响应为 JSON,所以我们可以像 JavaScript 中的 native 对象一样访问它。现在让我们转到validation.php

正如我上面所说,我建议您使用 PDO 作为数据库驱动程序。所以在这个例子中,我将向您展示它的基本用法。

//set the headers to be a json string
header('content-type: text/json');

//no need to continue if there is no value in the POST username
if (!isset($_POST['username'])) {
exit;
}

//initialize our PDO class. You will need to replace your database credentials respectively
$db = new PDO('mysql:host=DATABASE_HOST;dbname=DATABASE_NAME;charset=utf8mb4', 'DATABASE_USERNAME', 'DATABASE_PASSWORD');

//prepare our query.
$query = $db->prepare('SELECT COUNT(*) FROM users WHERE username = :name');
//let PDO bind the username into the query, and prevent any SQL injection attempts.
$query->bindParam(':name', $_POST['username']);
//execute the query
$query->execute();

//return the JSON object containing the result of if the username exists or not. The $.post in our jquery will access it.
echo json_encode(array('exists' => $query->fetchColumn() > 0));

现在回顾一下,我们的 jQuery 脚本将发布到 validation.php 并从数据库中选择用户名。它将返回一个 JSON 对象,该对象的键为 exists,该值是一个 bool 值,指示用户名是否已作为数据库中的一行存在。当通过 jQuery 完成请求后,您可以根据查询结果执行您需要的操作。

关于jquery - 使用AJAX检查数据库中是否存在用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com