Проблема с реализацией загружаемого кода - PullRequest
0 голосов
/ 18 сентября 2011

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

Есть липростое решение для этого?Я думал, что все, что мне нужно, это поле ввода, где пользователь может ввести код, он проверяется, а затем позволяет загружать, но это звучит слишком просто.Возможно ли это даже с чем-то вроде .php (полный новичок)?

Я готов учиться, или я бы уже упаковал это, поэтому любой совет был бы полезен.Спасибо.


Редактировать:

Благодаря некоторым замечательным советам я смог создать это!

1 Ответ

2 голосов
/ 18 сентября 2011

Если вы хотите сделать это на очень простом уровне, это не намного больше, чем вы описали. Вам необходимо ознакомиться с PHP и MySQL или какой-либо другой базой данных, но это не так уж сложно создать.

Вам необходимо выяснить несколько вещей, например, как вы хотите ограничить коды, 3 загрузки в течение первых 24 часов, чтобы разрешить неудачные загрузки, ограничить его IP или строго одну полную загрузку. Поскольку у вас есть список из 1000 приведенных кодов, вы, вероятно, захотите основывать свою систему на предварительно сгенерированных и вставленных в базу данных кодах, а не на алгоритме, который может проверять коды на лету, а затем проверять уже использованные коды. коды.

Вы хотели бы сохранить загруженные файлы в каталоге, который недоступен из Интернета, и сценарий php подтвердит код и, если он действителен, предоставит загрузку пользователю.

Возможно, вы можете посмотреть на структуру базы данных плагина wordpress для других идей, но я думаю, что по крайней мере вам понадобится:

download_code   (the code itself, probably primary key or at least index)
download_file   (optional, the name/path of the file this code allows them to download)
redeemed        (0 if not redeemed, 1 if redeemed)
redemption_time (timestamp of the first, or last redemption based on your requirements)
download_count  (how many times downloaded if allowing more than 1)
ip_address      (ip address of the redeemer)
email_address   (email address if you want to collect it, or give user the option)
download_url    (the unique string for the download url.  this could be one way to implement   download verification beyond the code, but is not necessary)

Затем вам нужно будет создать html-страницу с текстовым полем для ввода кода и любыми другими необязательными данными, которые вы хотите собрать. Форма будет отправлена ​​в ваш PHP-скрипт.

Когда PHP-скрипт получает сообщение формы, он проверяет все данные (т. Е. Адрес электронной почты, если вы его собираете). Как только все данные верны, вы читаете из базы данных в поисках кода, соответствующего введенному пользователем.

Если с кодом не было найдено данных, отправьте их обратно в форму, чтобы попытаться ввести ее повторно. Если запись найдена, вы можете проверить значение redeemed из базы данных и посмотреть, использовался код или нет. Если да, то здесь вы можете использовать пользовательскую логику, чтобы решить, находятся ли они в своем окне загрузки, тот же IP-адрес или какие-либо критерии, которые вы хотите использовать, чтобы разрешить повторную загрузку.

Если он был погашен, показать сообщение об ошибке. Если загрузка все еще возможна, вы можете загрузить ее, прочитав файл и отправив его в браузер , см. Пример №1 здесь .

В какой-то момент вам придется обновить базу данных, чтобы установить флаг redeemed на 1, и обновить другие значения, такие как отметка времени и количество загрузок. Вы можете либо запустить этот код, прежде чем начать загрузку, либо запустить его после окончания загрузки. В некоторых случаях, если загрузка была прервана, последняя часть вашего скрипта не запустится и, следовательно, не будет обновлена ​​как выкупленная или download_count. Это может или не может быть то, что вы хотите, поэтому вы можете решить, где вы хотите сделать обновление.

В конце концов вы можете обновить его, добавив панель администрирования, но вначале все настройки можно выполнить в скрипте php или в файле конфигурации. И, в конце концов, вы можете обновить его, чтобы использовать флэш-память или другие технологии для загрузки файла и отображения индикаторов выполнения и т. Д.

Надеюсь, это даст вам некоторое представление о том, хотите ли вы попытаться реализовать его. В противном случае вы всегда можете выполнить поиск php в Hotscripts , чтобы узнать, есть ли уже готовая автономная версия того, что вы хотите.

...