Уникален линк на файл

Vladkata

Registered
Здравейте! Как ще стане ако имам файл /home/site/document.pdf от всеки различен IP адрес, да се показва различен линк, например букви (A-Z) и цифри (0-9), но да речеме ако на човек с компютър Х линка към файла му е http://www.site.com/aBcdEf569 (не за постоянно от един IP адрес - на рефреш си е различен), човек с компютър Y, да не може да отвори този линк (файлът не съществува - на него линкът му е друг). Идеята ми е да може само определени хора (логнати в системата) да имат достъп до файла, а другите които не са, дори и да имат линк, да не могат да видят файла.
Това по моята логика ще стане чрез проверка за IP...

Благодаря предварително!
 
След като потребителите са логнати в системата, най-уникалната информация, която имаш за тях е user_id, username, и т.н. Ако ще проверяваш само по IP, какво ще се случи ако даден потребител влезе от друг адрес?

Ако предположим, че тези файлове не ги пазиш само във файловата структура на сървъра, но имаш и записи в някаква таблица в базата-данни, ситуацията се улеснява.

[sql]
select * from files where SUBSTR(MD5(CONCAT(id, '$user_id')), 0, 10) = '$code'
[/sql]

Или преведено на човешки - сглобяваш един нов тестов низ от id на файла и id на потребителя, който се е логнал (file_id = 10, user_id = 512 и получаваш 10512), взимаш md5 hash от този низ (което в случая е 1f16dde7e4a071f4a7649bdd0459efcd) и от този низ взимаш първите 10 символа, което е 1f16dde7e4

Т.е., търсиш съвпадение между кода който си получил през $_GET['code'] и тази комбинация по-горе от id на потребителя и id на файла.

Големия недостатък тук е ако имаш много файлове и много потребители - ще работи бавно. Но поне ти дава някакви насоки как да направиш уникални линкове за един и същ файл но за различни потребители.
 
php не знам... Има 3 файла и 10 потребителя, сайтът е за малко нещо...
Ползвам следната логин система (трябваше ми точно такова нещо), ако може да обясните по-подробно...

Има ли как да се направи?

Благодаря предварително!
 

Back
Горе