Доступ по прямой ссылке?

Jekart

Новичок
Приветствую Вас коллеги!

По своей глупости изначально реализовал не правильный механизм хранения копий пользовательских документов, сложил их просто в директорию c именем "ID пользователя".
Теперь ломаю голову как закрыть доступ к этим файлам по прямой ссылке для не авторизованных пользователей ?
1.В проекте используется Сессионная авторизация.
2.Ссылки на файлы подгружаются AJAX из базы данных
3.Весь проект построен на AJAX, без перезагрузки.
PHP:
$value = 'usersData/298.1.0.3/files.jpg'
$thisDocHtml .= '<br><a href="'.$value.'" class="fancybox-pdf" data-fancybox-type="iframe">'.$value.'</a>';
4. Ссылка должна открывается в модальном окне "fancybox - iframe" или в новой вкладке

Есть идея перенаправлять все прямые запросы к директории "usersData" на файл обработчик PHP а оттуда проверять, если у пользователя живая серия, то отдавать файл. Но вот с реализацией затрудняюсь.

Можем обсудить вопрос не большого вознаграждения за помощь.
 
Последнее редактирование:

Kotofey

FloodMaster.
вынеси usersData в корень сервака, а по ссылке domain.com/usersData/298.1.0.3/files.jpg проверяй доступ юзера к файлу и если это его файлы то пускай скрипт читает файл с корня и отдает пользователю, итого ссылки не потеряются, файлы тоже.
 

Jekart

Новичок
вынеси usersData в корень сервака, а по ссылке domain.com/usersData/298.1.0.3/files.jpg проверяй доступ юзера к файлу и если это его файлы то пускай скрипт читает файл с корня и отдает пользователю, итого ссылки не потеряются, файлы тоже.
Может я что-то не понимаю, но у браузера не хватить привилегии доступа к корню сайта.
Ссылка получается должна быть такой "../domain.com/usersData/298.1.0.3/files.jpg"
Согласен, на прямую уже не попасть, но как я думаю и браузер туда тоже не достучится <a href="'../domain.com/usersData/298.1.0.3/files.jpg'" class="fancybox-pdf" data-fancybox-type="iframe">docName</a>.
Или я не прав ?
 

Kotofey

FloodMaster.
по ссылке domain.com/usersData/298.1.0.3/files.jpg должен отрабатывать php скрипт, который будет читать файл и отправлять контент в браузер, прослойка.
 

Jekart

Новичок
по ссылке domain.com/usersData/298.1.0.3/files.jpg должен отрабатывать php скрипт, который будет читать файл и отправлять контент в браузер, прослойка.
Это понятно. А можно банальный пример скрипта такого типа или ссылку на мануал про это.
 

Kotofey

FloodMaster.
Это понятно. А можно банальный пример скрипта такого типа или ссылку на мануал про это.
PHP:
<?php
if(user_login()){
   $file="/usersData/298.1.0.3/files.jpg";
    header('Content-Type: application/zip');
    header('Content-Length: ' . filesize($file));
    header('Content-Disposition: attachment;filename=filename.zip"');
    readfile($file);
    exit;
}
else{
   die("Please log in");
}
 
Сверху