Задать вопрос
yurygolikov
@yurygolikov

Как сделать доступными медиафайлы только для некоторых пользователей сайта?

Понимаю, что вопрос тупой, но не могу понять в какую сторону копать и какие запросы гуглить.

Вообщем есть пользователи в базе данных сайта. Как одним пользователям давать доступ к определенным медиафайлам, а другим - нет. (Сайт на php, сервер Apache)
Пока что есть 2 варианта:
1. Запросы направлять на index.php, где далее с помощью php определять можно ли отдавать файл клиенту и далее просто инклюдить файл с правильными заголовками, но тут у меня проблемы - прописываю через header но они не меняются и я так понял что кроме контент тайпа нужно еще и длину указывать.
2. Модуль XSendFile позволяет с помощью специального заголовка передать отправку файла самому Apache. Существуют версии по Unix и Windows, под версии 2.0.*, 2.2.* и 2.4.*

ЕСТЬ ЛИ более легкие и простые способы разрешать отдавать серверу медиафайл, который по дефолту запривачен htaccess-е? Чтобы сервер сам там уже загаловки правильные прописывал, а не мне писать движок для анализа типа файла и тд.

Не бросайте камнями - я новичок:)
  • Вопрос задан
  • 243 просмотра
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
jMas
@jMas
Full stack developer
Вы можете использовать авторизацию пользователей через MySQL базу данных https://httpd.apache.org/docs/current/mod/mod_auth...

Но в целом это да, традиционно запрос через mod_rewrite направляется в php файл, там проверяется доступ к этому ресурсу, а далее php.net/manual/ru/function.readfile.php
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Isolution666
@Isolution666
Full-Stack Developer
Есть два способа, как ограничивать доступ к контенту.

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


Что касается второго варианта, тут по больше головников, дело в том что дату рождения здесь нужно указывать сразу и обязательно, при регистрации, либо в личном кабинете, в противном случае он не сможет пользоваться сайтом, в инете найдёшь функцию вычисляющую возраст, но большой плюс в том, что если есть контент 18+ , то вы застрахованы от иска в суд за публичный контент для несовершеннолетних (вопрос нравственности)



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

Войдите, чтобы написать ответ

Похожие вопросы