Используйте Cookies в качестве файла блокировки в PHP - PullRequest
0 голосов
/ 04 августа 2011

Я бы хотел, чтобы пользователи могли только один раз щелкнуть ссылку, например:

http://www.blah.com/download.php?file=zFZpj4b2AkEFz%2B3O

У каждого пользователя есть электронное письмо, отправленное с уникальной ссылкой, и когда он щелкает по нему, я хочу установить файл cookie на СЕРВЕРЕ, чтобы я знал, что доступ к этой ссылке снова будет отклонен.

Любые идеи приветствуются.

Спасибо.

Ответы [ 3 ]

1 голос
/ 04 августа 2011

Блокировка загрузки дубликатов может вызвать проблемы (особенно с блокировщиком файлов Internet Explorer, который вызывает обновление страницы).

Файлы cookie - неправильный ответ, поскольку все, что нужно сделать пользователю, это использовать другой браузер / компьютер или очистить их файлы cookie для повторной загрузки.

Если вы отчаянно хотите сделать это, как насчет

В файловой системе создайте символическую ссылку на реальный файл и назовите ссылку так же, как ключ.

При обработке запроса страницы:

  1. проверить строку URL (чтобы избежать прыжков и т. Д.)
  2. Проверьте наличие этой ссылки, если она не существует, ссылка недействительна / просрочена, поэтому покажите ошибку
  3. В противном случае скопировать файл в ответ
  4. Удалить ссылку
1 голос
/ 04 августа 2011

В файле download.php проверьте, существует ли файл cookie, такой как AlreadyAccessed, и, если он существует, запретите загрузку, в противном случае начните загрузку файла и установите файл cookie. Вот и все

0 голосов
/ 04 августа 2011

Cookies хранятся на стороне клиента, а не на стороне сервера, так что это неправильный вариант.Если пользователь удалит файлы cookie вашего сайта, он сможет обойти любую проверку, основанную на существовании / значении файла cookie.

Вы можете создать файл на сервере с определенным именемкогда вы отправляете ссылку и удаляете ее, как только она была доступна.Если кто-то попытается получить доступ к ссылке во второй раз, файл «флага» не будет существовать, и вы узнаете, что это повторная (или недействительная) ссылка.

(хотя было бы лучше с базой данных, file-проверки, основанные на проверке, нелегко сделать нелегким способом.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...