apache — разрешение доступа к файлу в соответствии с переменной $ _SESSION

Я использую сервер Apache / PHP, на котором у меня есть видео файл.

Есть ли способ, которым я мог бы разрешить доступ к этому файлу, только если некоторые $_SESSION переменные имеют конкретные значения?

1

Решение

Прежде всего поместите видео в отдельную папку
добавьте файл .htaccess в папку со следующим кодом

Order deny,allow
Deny from all

это предотвратит любой прямой доступ к файлу извне сервера, но так как ваш php-сервер обладает локальными правами доступа к файлам, можно ссылаться на него

Теперь вы можете использовать оператор if, чтобы проверить, установлен сеанс или нет, и, соответственно, предоставить доступ как

if(isset($_SESSION) && $_SESSION['some_var'] == 'some_particular_value'){
// show video
}
1

Другие решения

Конечно.

Прежде всего, вы должны избегать прямого доступа к видеофайлу. Это можно сделать, поместив его в папку, содержащую файл .htaccess с надписью «Запретить все».

Во-вторых, вы пишете php-скрипт с кодом для проверки $ _SESSION и, если все в порядке, обращаетесь к файлу косвенно. Этот скрипт можно использовать как src вместо естественной ссылки на файл.

Чтобы получить косвенный доступ к файлу, вы можете использовать header (), чтобы отправить mime-тип, а затем вывести содержимое файла с помощью readfile ().

Альтернативой является создание временной копии файла с хэш-именем только для того, чтобы пользователь получил к нему доступ.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector