Возможно, так же, как Wordpress создает/изменяет файл .htaccess.
Вам просто нужно создать скрипт, который будет генерировать правильное содержимое файла для .htpass или файла .htaccess.
Когда пользователь что-то покупает, добавьте строку в файл .htpass, содержащий комбинацию пользователя/пароль, и все их в группу (возможно, основанную на имени файла). Затем разрешите этой группе доступ к этому файлу.
Другой способ сделать это будет через базы данных.
Во-первых, когда пользователь производит платеж, имейте несколько таблиц для хранения своих данных.
Первая таблица: пользователя/пароль
Это хранит комбинацию электронной почты/пароль, который необходимо использовать для получения доступа к файлам пользователей. В основном таблица состоит из
int Unq_ID
| text Email_Addr
| varchar(150) Password
Это содержит комбинации пользователя/пароля.
Вторая таблица: Файлы
Эта таблица содержит все ваши имена файлов, идентификаторы и где они будут созданы.
int Unq_ID
| varchar(150) Name
| text Directory
Третий стол: Отношения
Эта последняя таблица содержит взаимосвязь между Пользователем и пароль. Также очень просто:
int Unq_ID
| int User_ID
| int Product_ID
В принципе, если человек входит в систему с действительным Логин/пароль, вы идете записи грейфер отношения, которые соответствуют их User_ID
, и присоединиться к файлам с на Product ID
. Чтобы проверить, что они могут что-то загрузить, просто проверьте, существует ли запись, которая имеет права User_ID
и Product_ID
.
Чтобы защитить файл от несанкционированного доступа, сделайте файл Htaccess, как этот
RewriteEngine On
RewriteBase/
RewriteCond %{THE_REQUEST} ^.+$ [NC]
RewriteRule .* - [F,L]
отвергающих от кого принимать FOPEN функцию РНР. Затем вы просто создаете скрипт PHP, который захватывает содержимое и представляет его как загрузку.
Есть, вероятно, гораздо более простые способы сделать это, и я закрою их через минуту. –
Но, это потому, что я предпочитаю базы данных. –
Мне очень понравился этот путь, хотя я тоже чувствую себя более комфортно с базами данных, но только один вопрос. Как я могу защитить папки от прямого доступа? – Carlo