阻止人们注册与根文件夹相同的用户名

时间:2014-08-27 23:58:43

标签: php .htaccess

我正在使用.htaccess加载社交网络个人资料

RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ /users/users.php?username=$1

但问题是任何人都可以注册一个与“admin”

相同的用户名

有没有办法用.htaccess或php来阻止它?

2 个答案:

答案 0 :(得分:1)

我找到了解决方案!

<?php
$dir    = '/var/www';
$files = scandir($dir);

if (in_array("forum", $files)) {

echo "username Exists";

}
?>

答案 1 :(得分:0)

您可以使用否定前瞻断言((?!…))执行此操作:

RewriteRule ^(?!admin)([a-zA-Z0-9_-]+)$ /users/users.php?username=$1

但是,我建议在创建用户时执行验证,然后在允许访问任何文件之前验证用户是否存在于数据库中。更好的是,考虑重新设计您的系统,以便用户信息不会存储在目录结构中,而是存储在某个地方的数据库中。或者,如果您确实 在文件系统上存储用户文件,则可以确保每个用户都具有唯一的数字用户ID,并将其用作文件夹名称。