2011-09-18 3 views
0

작은 인디 레코드 레이블을위한 웹 사이트를 디자인 중이며 디지털 다운로드를 수신 할 수있는 코드를 사용자가 입력 할 수있는 기능을 구현할 수 있는지 묻습니다.다운로드 코드 리디 마의 구현에 문제가 있습니다.

간단한 해결책이 있습니까? 나는 사용자가 코드를 입력 할 수있는 입력 필드가 필요하다고 생각하고 있었고, 검증을 거친 후 다운로드를 허용하지만 너무 단순하게 들린다. 이것은 .php (완전한 초보자)와 같은 것으로도 가능합니까?

나는 배우기를 기꺼이 또는 나는 이미 그것을 포장했을 것입니다 그래서 어떤 충고도 좋을 것입니다. 감사.


편집 :이 만들 수 있었다 훌륭한 조언에

감사합니다!

답변

2

매우 간단한 단계에서 수행하고 싶다면 설명하는 것 이상은 아닙니다. PHP와 MySQL 또는 다른 데이터베이스에 익숙해 져야하지만, 그렇게 만드는 것은 어렵지 않습니다.

어떻게 코드를 제한 하시겠습니까? 처음 24 시간 동안 3 회 다운로드하여 실패한 다운로드를 허용하거나 IP로 제한하거나 전체 다운로드를 1 회 제한하는 등 몇 가지 사항을 알아야합니다. 주어진 1000 개의 코드 목록을 가지고 있기 때문에, 즉시 코드를 검증 할 수있는 알고리즘을 가지고 있지 않고 이미 사용 된 코드를 확인하는 대신 코드가 미리 생성되어 데이터베이스에 삽입 된 시스템을 기반으로 할 수 있습니다 코드.

웹에서 액세스 할 수없는 디렉토리에 다운로드를 저장하고 PHP 스크립트가 코드의 유효성을 검사하고 유효한 경우 다운로드를 사용자에게 제공하는 것이 좋습니다.

당신은 아마 다른 아이디어를 워드 프레스 플러그인의 데이터베이스 구조를 볼 수 있지만, 난 당신이 필요 최소한 생각 :

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 주소가 같은지 또는 재 다운로드를 허용하기 위해 원하는 기준을 결정할 수 있습니다.

사용 된 경우 오류 메시지가 표시됩니다. 그래도 다운로드해도 괜찮 으면 파일을 읽고 브라우저 see example #1 here으로 보내 다운로드 할 수 있습니다.

어느 시점에서 데이터베이스를 업데이트하여 redeemed 플래그를 1로 설정하고 타임 스탬프 및 다운로드 횟수와 같은 다른 값을 업데이트해야합니다. 다운로드하기 전에이 코드를 실행하거나 다운로드가 제공된 후에 실행할 수 있습니다. 경우에 따라 다운로드가 중단 된 경우 스크립트의 마지막 부분이 실행되지 않으므로 사용 또는 download_count를 업데이트하지 않습니다.이것은 원하는 것일 수도 있고 아닐 수도 있기 때문에, 업데이트 할 곳을 결정할 수 있습니다.

결국 관리 패널을 포함하도록 업데이트 할 수 있지만 처음에는 모든 구성을 PHP 스크립트 또는 구성 파일에서 수행 할 수 있습니다. 그리고 결국에는 플래시 나 다른 기술을 사용하여 파일을 다운로드하고 진행률 표시 줄 등을 표시하도록 업데이트 할 수 있습니다.

이 기능을 구현하려고하는지 여부를 알기 바랍니다. 그렇지 않으면 언제든지 php on Hotscripts을 검색하여 원하는 버전의 독립 실행 형 버전이 있는지 확인할 수 있습니다.

+0

drew010 정말 도움이된다고 생각합니다. 좋은 운동이 될 것 같습니다. 나는이 글을 계속 업데이트 하겠지만, 대단히 감사합니다. – Bantros

+0

여러분, 환영합니다. 여러분이 필요로하고 구현하고자하는 모든 것을 이해하는 데 도움이되기를 바랍니다. 더 많은 도움이 필요하시면 여기에 올께 – drew010

+0

진행된 원본 게시물이 업데이트되었습니다. – Bantros

관련 문제