Формирование ссылки с помощью php

Подскажите пожалуйста, какой функцией можно передавать файл на скачивание. Приведу пример.
Да пустим мы продаём на сайте цифровой товар. После покупки нам нужно предоставить покупателю ссылку на скачивание или сразу произвести загрузку товара. Если сделать скачивание товара на какой-то странице и сразу редирект, что бы пользователь не увидел ссылку, то это не выход. Любой сможет проинспектировать например в хроме и во вкладке Network может увидеть путь откуда был скачан файл.
Так вот интересно, каким образом реализовать так, что бы не было видно путя или как сделать, что бы ссылка после загрузки менялась и ещё раз нельзя будет скачать этот файл по этой же ссылке?

1 комментарий

Incode 12.09.2014 13:23
Можно разные способы придумать, но для примера, возьмём такой:
Вид конечной ссылки - http://site.com/get_file.php?hash=b5d56faa3bf1d92e4f560b6ee5bf92a3
Потребуется две вещи:
1. Код, который генерирует ссылку с уникальным хешем и записывает хеш в файл "hash_file.txt". Тут в помощь md5(), time(), uniqid() и т.д. на ваш вкус.
2. Файл "get_file.php", где проверяется хеш ($_GET['hash']) в "hash_file.txt". При совпадении удаляет строку хеша из этого файла и даёт добро на скачивание.
В "hash_file.txt", можно записывать вместе с хешем и имя файла через какой-нибудь разделитель, можно имя файла передавать в url (без реального пути к папке с файлами), можно эти данные хранить и в БД. В общем, тут всё от вашей фантазии зависит )) Только не забывайте блокировать файл "hash_file.txt" (flock()) на время работы с ним.
Ваш комментарий:
X