PHP: Как ограничить изображения, возвращаемые php-файлом на основе пользователей / групп?

Следуя совету на этом сайте, я использовал image.php файл для возврата ресурса изображения, как предложил здесь (ссылка на изображения в виде файлов недоступна из-за ограничений безопасности).

Как я могу ограничить изображения, которые определенный пользователь может «получить» из этого image.php файл?

Я использую архитектуру ООП MVC на моем сайте. При подключении, когда index.php выполняется, многие классы загружаются и создаются, таким образом, поток имеет переменные, указывающие, кто пользователь и к каким ресурсам он может получить доступ.

Этот файл image.php (возвращает изображение) действует как автономный скрипт (доступ к которому осуществляется через HTML) src атрибут со стороны клиента), не загружается уже запущенным потоком и (извините, если я его неправильно понял) не имеет переменных, указывающих, кто пользователь и к чему он может получить доступ.

я мог бы иметь image.php пройти ту же процедуру, что и index.php, загрузка и создание экземпляров классов, но я думаю, что это будет ужасная трата ресурсов для одного изображения.

Как я могу ограничить изображения, возвращаемые image.php на пользовательской основе без создания дополнительной нагрузки на сервер?

РЕДАКТИРОВАТЬ: я заметил на некоторых сайтах, что image.php передается длинная строковая переменная GET, это может быть метод?

Если я объяснил себя неясно, пожалуйста, наберитесь терпения и дайте мне знать, я постараюсь уточнить.

0

Решение

Вам нужно как-то идентифицировать пользователя в image.php, и это будет зависеть от того, как вы создадите сеанс пользователя. Если вы используете сессии PHP, вы можете просто сделать:

session_start();
$username = $_SESSION['username'];
// check permissions

Большинство фреймворков используют адаптеры и оболочки для сессии PHP, в image.php просто var_dump ($ _ SESSION) и проверяйте, есть ли нужная вам информация. Не забудьте вызвать session_start.

1

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

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

По вопросам рекламы [email protected]