/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste