|
| Downloadlink som skifter, evt. krypteret ? Fra : Jakob Munck |
Dato : 15-07-07 17:27 |
|
Jeg er ved at lave en site, hvor man kan downloade nogle (lovlige)
mp3-filer. Men brugerne skal ikke have adgang til ubegrænset download. De
skal betale et beløb og så får de tilsendt en mail med et link, hvorfra de
kan downloade den fil de ønsker. Nu er problemet så bare hvordan man undgår
at det link man sender til dem kan bruges igen i al fremtid, så man derved
giver brugeren en uendelig downloadmulighed. Det er jo ikke meningen.
Det skal være sådan, at kunden kun kan downloade fra det tilsendte link i én
dag. Forsøger han dagen efter, skal linket være ubrugeligt.
Hvordan laver man det (uden at flytte downloadfilerne rundt til forskellige
URL's hver dag)?
v.h.
Jakob
| |
Nikolaj Svendsen (15-07-2007)
| Kommentar Fra : Nikolaj Svendsen |
Dato : 15-07-07 17:44 |
|
"Jakob Munck" <jm2_fjern_dette@webspeed.dk> skrev i en meddelelse
news:469a4adc$0$914$edfadb0f@dread12.news.tele.dk...
> Jeg er ved at lave en site, hvor man kan downloade nogle (lovlige)
> mp3-filer. Men brugerne skal ikke have adgang til ubegrænset download. De
> skal betale et beløb og så får de tilsendt en mail med et link, hvorfra de
> kan downloade den fil de ønsker. Nu er problemet så bare hvordan man
> undgår at det link man sender til dem kan bruges igen i al fremtid, så man
> derved giver brugeren en uendelig downloadmulighed. Det er jo ikke
> meningen.
>
> Det skal være sådan, at kunden kun kan downloade fra det tilsendte link i
> én dag. Forsøger han dagen efter, skal linket være ubrugeligt.
>
> Hvordan laver man det (uden at flytte downloadfilerne rundt til
> forskellige URL's hver dag)?
>
> v.h.
> Jakob
>
Kan du ikke flytte filen var gang. Og så skrive filens destination ind i din
database.
| |
Jakob Munck (15-07-2007)
| Kommentar Fra : Jakob Munck |
Dato : 15-07-07 18:34 |
|
>>
>> Hvordan laver man det (uden at flytte downloadfilerne rundt til
>> forskellige URL's hver dag)?
>>
>> v.h.
>> Jakob
>>
>
> Kan du ikke flytte filen var gang. Og så skrive filens destination ind i
> din database.
Hvis jeg skal flytte mp3-filerne til en ny URL hver gang jeg har sendt en
mail med et downloadlink til en bruger, så får jeg nok (alt for meget) at
lave. Det skal gerne fungere automatisk. Men måske misforstår jeg, hvad du
mener??
v.h.
Jakob
| |
Jakob Munck (15-07-2007)
| Kommentar Fra : Jakob Munck |
Dato : 15-07-07 19:33 |
|
jeg må hellere præcisere, at det det gælder om er at give en bruger et link,
hvor han kan downloade en fil, UDEN at han dermed får hele URL til den
mappe, hvori filerne som kan downloades ligger. Det må være et klassisk
problem !
v.h.
Jakob
| |
Henrik Stidsen (15-07-2007)
| Kommentar Fra : Henrik Stidsen |
Dato : 15-07-07 19:34 |
|
"Jakob Munck" <jm2_fjern_dette@webspeed.dk> wrote in
news:469a4adc$0$914$edfadb0f@dread12.news.tele.dk:
> Hvordan laver man det (uden at flytte downloadfilerne rundt til
> forskellige URL's hver dag)?
Læg filerne udenfor webscope.
Når filen bestilles skriver du et ID i en database og sammenkæder det med
en fil.
Send et link indeholdende det unikke ID til brugeren.
Når brugeren aktiverer linket sendes filen til brugeren (læs filen, send
til brugeren)
Slet ID'et fra databasen.
Simpelt nok :)
--
Henrik Stidsen - http://henrikstidsen.dk/
| |
Jakob Munck (15-07-2007)
| Kommentar Fra : Jakob Munck |
Dato : 15-07-07 20:11 |
|
>
> Send et link indeholdende det unikke ID til brugeren.
>
> Når brugeren aktiverer linket sendes filen til brugeren (læs filen, send
> til brugeren)
>
> Slet ID'et fra databasen.
>
> Simpelt nok :)
>
Kunne du evt. give et eksempel på, hvordan et sådant link kunne se ud? Og
evt. på den kode, som "oversætter" det udsendte ID-link til det rigtige
link??
v.h.
Jakob
| |
Henrik Stidsen (15-07-2007)
| Kommentar Fra : Henrik Stidsen |
Dato : 15-07-07 20:22 |
|
"Jakob Munck" <jm2_fjern_dette@webspeed.dk> wrote in
news:469a713d$0$69133$edfadb0f@dread12.news.tele.dk:
> Kunne du evt. give et eksempel på, hvordan et sådant link kunne se ud?
> Og evt. på den kode, som "oversætter" det udsendte ID-link til det
> rigtige link??
Adressen kunne være: /mp3.php?id=gfisujo4h68fdwo68bq394fb3wiqe
ID´et kunne laves f.eks. med en MD5 hash af brugerens IP kombineret med
noget timestamp og evt. MP3 filens navn.
Databasestrukturen kunne være:
ID - auto incrementet ID
dlid - det ID der skal være i linket
filid - et ID der identificeret MP3 filen
--
Henrik Stidsen - http://henrikstidsen.dk/
| |
Michael Zedeler (15-07-2007)
| Kommentar Fra : Michael Zedeler |
Dato : 15-07-07 21:11 |
|
Henrik Stidsen wrote:
> "Jakob Munck" <jm2_fjern_dette@webspeed.dk> wrote in
> news:469a4adc$0$914$edfadb0f@dread12.news.tele.dk:
>
>> Hvordan laver man det (uden at flytte downloadfilerne rundt til
>> forskellige URL's hver dag)?
>
> Læg filerne udenfor webscope.
>
> Når filen bestilles skriver du et ID i en database og sammenkæder det med
> en fil.
>
> Send et link indeholdende det unikke ID til brugeren.
>
> Når brugeren aktiverer linket sendes filen til brugeren (læs filen, send
> til brugeren)
>
> Slet ID'et fra databasen.
Problem: brugerne vil uvægreligt komme til at afbryde overførslen og
vild erefter bede om at få lov til at overføre igen. Til at læse det
problem er det mere oplagt at lave en MD5-signeret billet med et
tidsstempel i download-url'en. Dermed undgår man helt at skulel besøge
databasen ved hver download og brugerne kan downloade så mange gange de
lyster indenfor det tidsrum, man selv har fastsat.
Mvh. Michael.
| |
Peter Brodersen (16-07-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 16-07-07 00:26 |
|
On Sun, 15 Jul 2007 22:10:32 +0200, Michael Zedeler
<michael@zedeler.dk> wrote:
>Problem: brugerne vil uvægreligt komme til at afbryde overførslen og
>vild erefter bede om at få lov til at overføre igen. Til at læse det
>problem er det mere oplagt at lave en MD5-signeret billet med et
>tidsstempel i download-url'en. Dermed undgår man helt at skulel besøge
>databasen ved hver download og brugerne kan downloade så mange gange de
>lyster indenfor det tidsrum, man selv har fastsat.
Jeg vil nu helt sikkert foretrække at have styringen og logningen i
databasen, hvis der skulle opstå efterfølgende supportproblemer og
deslige. Så kan det være lidt bøvlet at skulle rode i
webserver-logfiler.
--
- Peter Brodersen
Kendt fra Internet
| |
Jakob Munck (16-07-2007)
| Kommentar Fra : Jakob Munck |
Dato : 16-07-07 01:05 |
|
Jeg skal indrømme, at jeg ikke er helt med i denne diskussion. Der er noget,
som jeg ikke forstår. Her er mit foreløbige forslag til fremgangsmåde og
kode:
------------------------------------------------------------------
1. Brugeren får tilsendt en mail med et link som dette, som han klikker på:
<a href="html:// www.auro.dk/downloadside.php?kodet_url=uryhtsfikhe"
class="normal">Download-din-fil</a>
2. downloadside.php ser sådan ud:
<?php
$kodet_url = $GET[kodet_url];
$sql = mysql_query("SELECT * FROM tbDownload WHERE kodet_url = $kodet_url");
$data = mysql_fetch_array($sql);
$rigtig_url = $data[rigtig_url];
//her skal den rigtige url så omsættes til øjeblikkelig download. Men
hvordan gør man det??
------------------------------------------------------------
Det var så langt jeg kunne komme. Hjælp modtages gerne.
v.h.
Jakob
| |
Jakob Munck (16-07-2007)
| Kommentar Fra : Jakob Munck |
Dato : 16-07-07 08:23 |
|
Har forbedret lidt på den tidligere viste kode for download.php-filen. Dog
uden at det virker:
<?php
$fil_id = $_GET['fil_id'];
$sql = mysql_query("SELECT * FROM tbDownload WHERE id = $fil_id");
$data = mysql_fetch_array($sql);
$rigtig_url = $data[rigtig_url];
readfile("$rigtig_url");
?>
Resultatet er at filen (måske) læses, men at output bliver en masse
uforståelige karakterer på siten og ikke den ønskede download-fil.
Så den er stadig gal. Men hvordan?
v.h.
Jakob
PS. Ja, jeg har søgt i timevis på Google og fundet masser af tekst og kode,
men intet som jeg kan finde ud af at bruge her.
| |
Peter Brodersen (16-07-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 16-07-07 10:51 |
|
On Mon, 16 Jul 2007 09:23:04 +0200, "Jakob Munck"
<jm2_fjern_dette@webspeed.dk> wrote:
>readfile("$rigtig_url");
>?>
>
>Resultatet er at filen (måske) læses, men at output bliver en masse
>uforståelige karakterer på siten og ikke den ønskede download-fil.
Du mangler at sætte en passende header, så browseren ved, hvad den
modtager.
Før readfile() bør du angive, at indholdet er af typen audio/mpeg :
header("Content-Type: audio/mpeg");
readfile("$rigtig_url");
--
- Peter Brodersen
Kendt fra Internet
| |
Jakob Munck (16-07-2007)
| Kommentar Fra : Jakob Munck |
Dato : 16-07-07 14:32 |
|
>
> Du mangler at sætte en passende header, så browseren ved, hvad den
> modtager.
>
> Før readfile() bør du angive, at indholdet er af typen audio/mpeg :
>
> header("Content-Type: audio/mpeg");
> readfile("$rigtig_url");
>
Tak for hjælpen. Efter den ændring du foreslår er resultatet, at der
udskrives en masse uforståelige bogstaver i browseren. Men det jeg ønskede,
var at filen blev downloadet. Hvordan opnår jeg det?
v.h.
Jakob
| |
Peter Brodersen (16-07-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 16-07-07 16:42 |
|
On Mon, 16 Jul 2007 15:32:09 +0200, "Jakob Munck"
<jm2_fjern_dette@webspeed.dk> wrote:
>> header("Content-Type: audio/mpeg");
>> readfile("$rigtig_url");
>>
>
>Tak for hjælpen. Efter den ændring du foreslår er resultatet, at der
>udskrives en masse uforståelige bogstaver i browseren. Men det jeg ønskede,
>var at filen blev downloadet. Hvordan opnår jeg det?
Hm, det burde nu netop være tilfældet med den kode. Hvad er forskellen
fra før og efter du tilføjede header-linjen?
--
- Peter Brodersen
Kendt fra Internet
| |
Jakob Munck (16-07-2007)
| Kommentar Fra : Jakob Munck |
Dato : 16-07-07 20:46 |
|
>
> Hm, det burde nu netop være tilfældet med den kode. Hvad er forskellen
> fra før og efter du tilføjede header-linjen?
>
jeg har nu fået det til at virke. Fejlen var før, at jeg ikke startede siden
med at aflæse filens navn. Det gjorde at den udskrev mp3-filen som bogtaver.
Hvorfor ved jeg ikke?? Men nu ser den eksperimentelle kode, som virker, ud
sådan:
---------------------------------------
<?php $fil_id = $_GET['fil_id'];
//en hel masse med datebase og at finde url.....
if ($fil_id != ""){
header("Content-Type: audio/mpeg");
readfile("download/$fil_id");
}
?>
-----------------------------------------
Så skal der laves noget med database, og det kan jeg godt finde ud af. Så nu
tror jeg det kører.
Mange tak for hjælpen.
v.h.
Jakob
| |
|
|