Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP和MySQL中检查用户名_Php_Mysql_.htaccess_Redirect - Fatal编程技术网

在PHP和MySQL中检查用户名

在PHP和MySQL中检查用户名,php,mysql,.htaccess,redirect,Php,Mysql,.htaccess,Redirect,我有一个类似Facebook用户名的小应用程序。当我转到链接localhost/pretty url/index.php?id=100000001时,我将使用.htaccess成功重定向到localhost/pretty url/myusername 但是在重定向之前,我需要检查id是否已经在MySQL数据库中。如果是这样的话,那就是我重定向它的时候了 我的问题是,如果用户输入localhost/pretty-url/myusername,我如何检查用户名myusername是否存在,它是否不是

我有一个类似Facebook用户名的小应用程序。当我转到链接
localhost/pretty url/index.php?id=100000001
时,我将使用
.htaccess
成功重定向到
localhost/pretty url/myusername

但是在重定向之前,我需要检查id是否已经在MySQL数据库中。如果是这样的话,那就是我重定向它的时候了

我的问题是,如果用户输入
localhost/pretty-url/myusername
,我如何检查用户名
myusername
是否存在,它是否不是目录或文件?如果数据库中不存在,则不会有目录或文件将其重定向到404页面

顺便说一句,这是我的
.htaccess

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f


RewriteRule ^([^/]+)/?$ index.php?id=$1 [L,QSA]
ErrorDocument 404 /404.php
当我尝试
localhost/pretty-url/usernotexist
时,我没有被重定向到404页面,但当我放置类似于
localhost/pretty-url/usernotexist/dfdg
的内容时,我就被重定向了。实际上,用户名
usernotexist
在我的数据库中不存在。我怎样才能修好它


提前感谢..

您不能从htaccess文件检查数据库,我要做的是使用php检查用户名,并使用header()调用重定向。

Htaccess不能为您的数据库设置规则,在这种情况下,您必须使用PHP代码进行检查。这可能是一个很大的安全漏洞,因为用户可以输入一个他想要的有效用户ID,并被重定向到myusername页面。如果他使用一个有效的用户ID,那么它将被重定向到一个有这样一个用户ID的个人资料页面。但是,我也限制了一些东西。。非常不推荐。我知道我不能使用htaccess检查数据库。但是知道
usernotexist
是文件还是目录有帮助吗?