【问题标题】:Dynamic User Directorys动态用户目录
【发布时间】:2010-10-31 15:36:24
【问题描述】:

当用户注册时,我想知道如何为他们创建一个动态目录(这将显示他们的个人资料),例如 Facebook / MySpace。

我希望目录是他们用户名的目录。用户名存储在数据库中。

正在使用的技术

数据库:MySQL

前端:PHP

我已经研究过使用 PHP MKDIR 命令创建一个单独的目录,但我真的不希望 FTP 被文件夹溢出

【问题讨论】:

标签: php mysql facebook virtual-directory myspace


【解决方案1】:

Facebook 不会为用户提供自己的目录。为用户提供自己的目录会占用大量服务器资源,在后端付出大量努力,并且在您拥有数百万用户之后,文件分配表中的混乱会导致页面加载非常可怕。然后考虑所有浪费的磁盘空间,因为硬盘驱动器在分页系统上运行,并且每个目录都需要一个 index.html 文件...

Facebook 的做法是在 .htaccess 文件中写入一行。当用户说他们想要www.facebook.com/username 时,facebook 会添加以下内容:

RewriteRule username profile.php?id=<user id>

甚至还有更好的方法来做到这一点。您可以将所有内容重定向到 parse_request.php,这将确定您是在请求用户的特定页面,还是在请求不应更改的静态页面(如 welcome.php)。

【讨论】:

  • 这看起来正是我需要的。我对这个过程不了解的是 ?id= 位。我完全不知道如何编码或它是如何工作的。
  • 每当您在 URL 后加上问号时,它都会将数据作为“GET”请求发送。在 PHP 中,您可以通过 $_GET[] 变量访问这些变量。因此,例如,您可以说类似if($_GET['id'] == 1){ echo "Welcome back, admin!"; } 的内容(假设“admin”是用户 1)。然后,此 ID 通常包含在数据库查询中以查找有关所需用户的信息。类似SELECT * FROM users WHERE id == $_GET['id']
【解决方案2】:

如果您的代码在 Apache 下运行,您应该查看 mod_rewrite 并将“文件夹”设为虚拟。

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多