19. januar 2002 - 11:02Der er
19 kommentarer og 1 løsning
Kræv password inden dwload af en fil (ditdat.zip) på server?
(server understøtter php, mysql)
Mit spørgsmål er kort: Hvordan og hvorledes beskytter man en fil (eks. ditdat.zip) på ens server så det kun er dem der har et kodeord som kan dwloade den? Ellers sagt på en anden måde - at der afkræves et brugernavn og kodeord for at dwloade filen.
Filen skal evt. kunne hentes via et link på en ganske alm. PHP/HTML side hvor der afkræves brugerlogin for at hente filen, men hvis man kender det direkte link så kan man jo omgås denne regel/kode!
Desuden - kan søgerobotterne finde den filen \"ditdat.zip\" selvom den er gemt bag en kode eks. i en mappe?
Jeg har lavet et lille PHP-script som du måske kan bruge. Lad os sige at du kalder scriptet hentfil.php
Så skal du linke til den på denne måde: hentfil.php?file=ditdat.zip
Så beder den dig om kodeord for at kunne hente filen. Du skal så lægge alle de password-beskyttede filer i en mappe som i dette tilfælde hedder \"hemmeligefiler\"
Søgemaskinerne finder IKKE filer som ikke bliver linket til. Og direkte links undgår du bare, og så er det problem løst.
<? if ($password != \"monsterhemmeligtkodeord\"){ $error = \"<form action=\\\"\\\" method=\\\"post\\\">Adgangskode: <input type=\\\"password\\\" name=\\\"password\\\"></form>\"; die($error); } if (file_exists(\"hemmeligefiler/$file\")) { $filesize = filesize(\"files/$file\"); header(\"Content-Disposition: attachment; filename=$file\"); header(\"Content-Description: Bare hent $file den er god :)\"); header(\"Content-Length: $filesize\"); header(\"Content-Type: application/zip\"); $file = fopen(\"hemmeligefiler/$file\", \"r\"); fpassthru($file); } else { echo \"Filen <b>$file</b> findes ikke.\"; } ?>
hedder den \"application/zip\" fordi vi snakker om zip filer eller hvad nu hvis der er pdf/exe/bat filer jeg ønskede at have kode på? Er det så stadig den samme?
grunden til at jeg har sat den linie ind er at browseren tror at filen er en zip-fil, og derved vil den downloade den. Hvis du linker til et jpg-billede f.eks. vil billedet normalt blive åbnet i browseren, men da browseren tror at billedet er en zip-fil bliver brugeren spurgt om han/hun vil downloade filen.
Så du skal bare lade linien være ligegyldigt hvilke filer du vil have der kan downloades.
Hvis du fjerner den virker det også. Men så åbner den som sagt jpg-filer i browseren. Men det er jo op til dig hvordan du vil have det skal virke
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.