0

我正在使用 WYSIWYG Webbuilder 8 来构建一个网站。部分网站将仅限于注册用户访问。为此我创建了一个 MySQL 数据库。我也有一个注册表单。当新用户希望注册时,我想让用户名自动检查数据库以确保它不存在。我打算使用 AJAX 函数来执行此操作,因为所见即所得软件内置了此选项。我需要自己构建,这就是我正在努力的地方是 AJAX 命令将转到的 validate.php。

我目前有这样的事情(请原谅我的无知!):

<?php
$username = $_POST['data'];

// TODO: lookup username in database...
if ($username == 'user')
{
  echo "true";
}
else
{
  echo "false";
}
?>

我不知道这是否足够或安全。我一直在阅读一些关于 sql 注入和其他涉及表单使用的黑魔法的可怕内容,如果可能的话,我想避免陷阱。请好心人看看我的请求并帮助我吗?无论如何,我都不是程序员,而且我在这里已经超出了我的深度。在此先感谢您的帮助

4

1 回答 1

1

你想使用一些东西来为你处理你的应用程序和数据库之间的交流。当今可用的最佳工具之一是 PDO 库,特别是 PDO-MySQL 供您使用。它将通过使用参数化(准备好的)语句为您处理转义和 SQL 注入问题

这是连接到数据库并在 MySQL 中发出查询的示例

$db = new PDO('mysql:host=localhost;dbname=dbname;charset=UTF-8', 'username', 'password');
$statement = $db->prepare('SELECT user_id FROM users WHERE username = :username LIMIT 1');
$statement->bindValue(':username', $_POST['data']);
$statement->execute();

if (false == $userId = $statement->fetchColumn()) {
    // No matching username was found in the database
} else {
    // A matching username was found in the database
    // $userId contains the matching user ID
}

知道如何将其传递回您的 JS/AJAX 集成可能取决于您使用的框架(如果有)以及您希望该数据采用什么格式

于 2013-01-28T14:49:06.027 回答