Динамические пользовательские каталоги

Когда пользователь регистрируется, мне интересно, как создать для него динамический каталог (который покажет его профиль), такой как Facebook / MySpace.

Я хочу, чтобы каталог был их именем пользователя. Имя пользователя хранится в базе данных.

Используемые технологии

База данных: MySQL

Front End: PHP

Я рассмотрел использование команды PHP MKDIR для создания отдельного каталога, но я не хочу, чтобы FTP переполнялся папками

2 ответа

Решение

Facebook не дает пользователям свой собственный каталог. Предоставление пользователю своего собственного каталога требует много ресурсов сервера, много усилий на бэкэнде, и после того, как у вас будет несколько миллионов пользователей, беспорядок в таблице размещения файлов приведет к ужасной загрузке страницы. Затем примите во внимание все потраченное впустую дисковое пространство, так как жесткие диски работают в системе подкачки, И вам потребуется файл index.html для каждого каталога...

Вместо этого Facebook пишет строку в файл.htaccess. Когда пользователь говорит, что хочет www.facebook.com/usernameFacebook добавляет следующее:

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

Есть даже лучшие способы сделать это. Вы можете иметь ВСЁ перенаправление на parse_request.php, который будет определять, запрашивали ли вы конкретную страницу пользователя или статическую страницу (например, welcome.php) который не должен меняться.

Если ваш код работает под Apache, вы должны заглянуть в mod_rewrite и сделать "папки" виртуальными.

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

Другие вопросы по тегам