Avatar billede danm Nybegynder
02. september 2009 - 00:27 Der er 3 kommentarer og
1 løsning

Lave så kun logget ind kan downloade filer

Jeg skal lave en side hvor man logger ind, og deler tekst dokumenter med hinanden. Man skal så dog være logget ind for at kunne downloade eller uploade dem.
Normalt når jeg laver en login funktion bruger jeg sessions, og tjekker dem på hver php side, for at se om de er "set".
Men hvis jeg gerne vil lave sådan at de filer der ligger i en mappe, kun kan downloades af folk der er logget ind, hvordan gør jeg så det?
Normalt når filer ligger i en mappe kan man bare skrive URL'en, og så kan der downloades.
Avatar billede jokerper Nybegynder
02. september 2009 - 06:20 #1
Du kan nok godt bruge htaccess login, det den opgave.

Så skal du bare have en .htaccess i mappen og en passwordfil andetsteds.
Avatar billede Slettet bruger
02. september 2009 - 09:18 #2
Nej, det er ikke en smart måde at gøre det på. Læg i stedet for filerne i en mappe uden for websiden, eller beskyt dem med .htaccess med følgende indhold:

<Directory />
    Order Deny,Allow
    Deny from All
</Directory>

Lav derefter en PHP-fil med dette indhold. Ret til efter behov:

<?php
$filSti = "/filer/word.doc"; //Find fil der skal sendes.

if(file_exists($filSti)//Hvis filen findes.
{
$filNavn = end(explode("/", $filSti)); //Find filnavnet.

header("Content-disposition: attachment; filename=$filNavn"); //Fortæl klienten at filen skal downloades.

readfile($filSti); //Send filen
}
else
{ //Filen findes ikke. Fejlmeddelse.
echo "Filen findes ikke";
}
?>
Avatar billede danm Nybegynder
05. september 2009 - 19:44 #3
Kimsey0, Det virkede perfekt.

Beklager det sene svar, men det tog lidt tid før jeg fik sat en side op til at teste det på.

Jeg gjorde det at jeg lagde filerne uden for "www mappen", og dermed kan brugerne jo ikke tilgå den...

Lige et par hurtige spørgsmål:

1. Hvis der bliver uploadet en php fil, vil denne så blive kørt, eller downloadet (jeg har læst det er en måde at hacke på)
2. Er der noget nævneværdigt perfomance tab ved at bruge .htaccess metoden? Det er der nogen der skriver på nettet da jeg søgte på .htaccess filen.

Men smid endelig et svar.
Avatar billede Slettet bruger
05. september 2009 - 21:07 #4
Jeg er glad for at det virker for dig :)

--

1. Ja, du skal altid tjekke at det kun er godartede filtyper der uploades. Desuden er det bedst at starte med at blokere alle filtyper, og derefter tillade de ufarlige end omvendt.
PS. Filtypen skaffes lettest med konstanten $_FILES["fil"]["type"]

2. Nej, Apache er kodet rigtigt godt, og så cacher den naturligvis .htaccess filer. Derfor vil det ikke være den store hastighedsforringelse, end ikke på forholdsvis store sider.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester