ai didi

针对 MySQL 的 PHP 用户名验证

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:57 24 4
gpt4 key购买 nike

很多时间,花了,这里是我在:

    $uname_query = mysql_query("SELECT username FROM blog_members WHERE username='".$username."'");         

if ($uname_query == $username) {
$error[] = 'Username is already taken';
}

我正在尝试使用 SQL 查询 $uname_query 来提取表单中输入的 $username,如果存在,则使用 if 语句显示错误(如果存在)。

因为它是现在编码的,所以我没有收到任何错误,但也没有任何功能。

我错过了什么?

最佳答案

你需要使用一个fetch。

$row = mysql_fetch_row($uname_query);
// $row[0] will contain the first column of the first row (username)
if ($row[0] == $username) { }

但是,您应该考虑使用 PDO 或 MySQLi,因为 MySQL api 已被弃用。如果用户提供了 $username,您还应该使用准备好的语句。

在 PDO 中你可以这样做:

$stmt = $pdo->prepare("SELECT username FROM blog_members WHERE username=?");
$stmt->execute(array($username));
// fetchColumn will return the first column of the first row (username)
if ($stmt->fetchColumn() == $username) { }

这通过提供不带 $username 的准备语句并将其绑定(bind)到 execute() 函数中来防止 SQL 注入(inject)。 PDO 最初也需要一些不同的设置,但这里有一个很好的教程:http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

关于针对 MySQL 的 PHP 用户名验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23023270/

24 4 0
文章推荐: python - 替代 scipy.cluster.hierarchy.cut_tree()
文章推荐: mysql - 从 mysql 中的另一个表插入或更新
文章推荐: python - 加粗一个像素线
文章推荐: php - 我如何检查我的 MySQL 表以确保我没有输入相同的内容两次?
太空宇宙
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com