Y
Y
yurygolikov2016-07-20 15:35:06
PHP
yurygolikov, 2016-07-20 15:35:06

How to make media files available only to some site users?

I understand that the question is stupid, but I can’t understand in which direction to dig and what requests to google.
In general, there are users in the site database. How to give some users access to certain media files, but not to others. (Website on php, Apache server)
So far there are 2 options:
1. Send requests to index.php, where further using php to determine whether it is possible to give the file to the client and then just include the file with the correct headers, but here I have problems - I prescribe through the header, but they do not change, and I understand that in addition to the content of the type, you also need to specify the length.
2. The XSendFile module allows using a special header to send the file to Apache itself. There are versions for Unix and Windows, under versions 2.0.*, 2.2.* and 2.4.*
IS there any easier and simpler way to allow the server to give a media file that is private by default with htaccess? So that the server itself already prescribes the correct headers there, and not for me to write an engine for analyzing the file type, and so on.
Don't throw stones - I'm new :)

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
Alex Maslakov, 2016-07-20
@yurygolikov

Вы можете использовать авторизацию пользователей через MySQL базу данных https://httpd.apache.org/docs/current/mod/mod_auth...
Но в целом это да, традиционно запрос через mod_rewrite направляется в php файл, там проверяется доступ к этому ресурсу, а далее php.net/manual/ru/function.readfile.php

Игорь Васильев, 2016-07-20
@Isolution666

Есть два способа, как ограничивать доступ к контенту.
1) уровень доступа
2) возрастное ограничение

в первом случае уровень доступа присваивается автоматически, при регистрации, например, столбец в базе данных будет называться level и значение по умолчанию = 1 (выставить прямо в БД), в админке можно менять этот уровень например на = 2, или автоматизировать, если пользователь больше месяца зарегистрирован на вашем сайте, то level = 2 нужна функция update для MySQL
соответственно нужно помнить про столбец даты регистрации, чтобы иметь переменную (точку отсчёта), либо создать фильтр вип клиентов, если клиент не вип, то скрыть, чтобы он стал вип клиентом установи платёжную систему, чуточку по сложнее, но тут плюсов больше! ))

Вопрос вовсе не глупый, думайте, какая задача стоит, исходя из задачи, получится решение, два из них я описал

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question