小编IDo*_*now的帖子

如何在PHP中阻止相同的(大写/小写的敏感内容)用户名?

我可以阻止多个用户使用以下代码注册相同的用户名:

$sqlusercheck = "SELECT (SELECT COUNT(row_username) FROM table_users WHERE row_username = :username LIMIT 1) as checkusername";
$stmt = $database->prepare($sqlusercheck);
$stmt->bindValue(':username', $username);
$stmt->execute();
$row = $stmt->fetch();

if ($row->checkusername > 0) {
    $this->error[] = "This username is already taken.";
    $success = false;
}
Run Code Online (Sandbox Code Playgroud)

所以,如果Abc在数据库中,用户无法获取用户名Abc,但是他还是可以注册ABC,abc,abC等,我想阻止.

作为一种可能的解决方案,我不想使用strtolower()用户名.相反,我希望Abc用户能够与他的密码登录不管他写登录输入ABC,abc,abC,等.

我为什么要这个?

我观察到用户可以abc在他的计算机上注册用户名.但是当他想要在他的移动设备上登录时,设备会自动大写首字母并且用户无法登录.或相反亦然.

那么,为什么我不想要strtolower()?

因为有用户也希望显示为abC,并且有意识地注册了自己.所以他们的用户名将在他们注册时显示.

php

11
推荐指数
2
解决办法
1168
查看次数

如何构建注释的树结构?

我正在获取博客文章的所有评论,我也通过使用以下函数的引用将它们放在树结构中:

public function getComments($articleID) {
    $sql = "SELECT * FROM comments WHERE articleid = $articleID";
    $database = DatabaseFactory::getFactory()->Connect();
    $stmt = $database->query($sql);  
    $res = $stmt->fetchAll(PDO::FETCH_ASSOC);
    if($res!=NULL)
    {
        $references = array();
        $tree = array();
        foreach ($res as $id=> &$node) {
            // Use id as key to make a references to the tree and initialize it with node reference.
            $references[$node['comment_id']] = &$node;

            // Add empty array to hold the children/subcategories
            $node['children'] = array();

            // Get your root node and add this directly to …
Run Code Online (Sandbox Code Playgroud)

php

3
推荐指数
1
解决办法
799
查看次数

标签 统计

php ×2