我可以阻止多个用户使用以下代码注册相同的用户名:
$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,并且有意识地注册了自己.所以他们的用户名将在他们注册时显示.
我正在获取博客文章的所有评论,我也通过使用以下函数的引用将它们放在树结构中:
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 ×2