首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php用户名和密码验证安全代码

问php用户名和密码验证安全代码
EN

Stack Overflow用户
提问于 2013-01-28 22:42:09
回答 1查看 369关注 0票数 0

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

我现在有这样的东西(请原谅我的无知!):

代码语言:javascript
复制
<?php
$username = $_POST['data'];

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

我真的不知道这是否足够或安全。我一直在读一些关于sql注入和其他涉及表单使用的黑魔法的可怕的东西,如果可能的话,我想避免陷阱。能不能请一些好心人看一看我的请求,帮我一下?我根本就不是一个程序员,我也不是我所能理解的。提前感谢您的帮助

EN

回答 1

Stack Overflow用户

发布于 2013-01-28 22:49:06

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

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

代码语言:javascript
复制
$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集成可能取决于您使用的是什么框架(如果有的话),以及您希望数据采用什么格式

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14564459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档