mysql — авторизация пользователей для просмотра файлов Stack Overflow

У меня полнофункциональная система входа в систему, и я держу пользователя, вошедшего в систему по его идентификатору, в переменной сеанса $ _SESSION [‘user_id’].

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

Я знаю, что могу использовать базу данных MySQL для хранения информации о том, авторизованы ли они для просмотра определенного файла, а затем сверять свой идентификатор с базой данных при доступе к ней через веб-страницу, например, file.php с контейнером на странице, но как мне помешать кому-то узнать, что такое URL файла (например, /files/file.pdf) и перейти к нему в браузере и просмотреть его таким образом?

Я знаю, что должен быть способ, но мои знания явно ограничены.

Любая помощь будет оценена.

Спасибо

Коннор Уайетт

2

Решение

Согласно запросу OP.

Разместите свои файлы за пределами общедоступной области HTML.

$file = "/var/user/you/outside_folder/file.xxx"; Тип вещи.


«ты можешь использовать ReadFile из вашего скрипта, если пользователь авторизован

Предложение Банси об использовании readfile хороший метод

В соответствии с примером на этой странице:

$filename = "file.csv";
$filepath = "/path/to/file/" . $filename;

Из примера № 1

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
?>

где $file = 'monkey.gif'; можно изменить следующим образом:

$file = '/var/user/you/outside_folder/monkey.gif';
4

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

Других решений пока нет …

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