Avatar billede Fiber Bjørn Juniormester
27. september 2010 - 18:20 Der er 9 kommentarer og
1 løsning

Kun bruger kan hente filer i denne mappe

Jeg har får brugt .htaccess til at beskytte filer med i en bestemt mappe. Er det muligt at beskytte en mappe med via login. Login har jeg lavet og virker ok men jeg har ikke kunne finde noget omkring beskyttelse af mappe via login.

Login godkendelse ser sådan ud.
if($_SESSION['person_hold'] == $_SESSION['hold']|| $_SESSION['person_status'] == "superbruger")
{}
else {Du har ikke adgang til denne side}
Avatar billede perfektus Nybegynder
27. september 2010 - 18:32 #1
Lav en redirect i din else..
Så bliver folk jo smidt over på en "du skal være bruger her for at hente side".

header("location: page.php");
Avatar billede Fiber Bjørn Juniormester
27. september 2010 - 18:39 #2
kan du uddybe lidt mere, er ikke lige helt med.
Avatar billede perfektus Nybegynder
27. september 2010 - 21:45 #3
Det kan du tro.

Hvis vi har din if.

if($_SESSION['person_hold'] == $_SESSION['hold']|| $_SESSION['person_status'] == "superbruger")
{
// VIS SIDE.
}
else {
// Du har ikke adgang til siden, så vi smider vores bruge et vilkårligt sted hen.

header("location: ingen_adgang.php");
}

Så hvis de ikke har adgang, så kan du smide dem hen hvor de vil.. Og de kommer aldrig til at se det pågældende site :)
Avatar billede Fiber Bjørn Juniormester
28. september 2010 - 22:16 #4
3#
Ja sådan har jeg også lavet det i dag. Men jeg ville gerne have det lavet sådan,

f.eks. Hvis linket til filen kopieres og sendes i en mail, til en anden person, kan filen ikke hentes hvis jeg ikke er login.

eller

hvis en internet robot skulle finde filen kan internet robotten ikke hente eller åbne filen fordi den ikke er login.

Håber det giver et bedre overblik over mit ønske.
Avatar billede wanze Nybegynder
29. september 2010 - 00:14 #5
Det kan du ikke umiddelbart gøre sådan der. Det du kan gøre er, at du lægger alle filerne i en beskyttet mappe, som man ikke kan få adgang til via domænet. Herefter laver du så en fil, der sender filen ud til brugeren.

Du kunne fx lave en fil, der hed get.php - når du sendte en bruger til get.php?fil=foobar.txt, ville der ske noget lignende:

if($_SESSION['person_hold'] == $_SESSION['hold']|| $_SESSION['person_status'] == "superbruger")
{
  header('Content-Length: '.filesize('./filer/'.$fil));
  header('Content-Type: '.mime_content_type('./filer/'.$fil));
  readfile('./filer/'.$fil);
}
else
{
  header("Location: /du-har-ikke-adgang/");
}
Avatar billede Fiber Bjørn Juniormester
05. februar 2011 - 11:36 #6
#5

Ja nu er det vist på tide at jeg får løst dette problem :)

Ved den måde at give lov til at se filerne, er det så ikke muligt at se filen alligevel hvis jeg ved den præcise sti?

Det jeg gerne vil have er at jeg kan beskytte en mappe ved at der skal bruges login til at se filerne i mappen
Avatar billede Fiber Bjørn Juniormester
03. juni 2011 - 09:03 #7
Lukker dette spørgsmål. Har ikke fundet en løsning :(
Avatar billede wanze Nybegynder
03. juni 2011 - 11:43 #8
Jeg havde glemt det her spørgsmål. Jo, det er muligt at tilgå filerne, hvis man kender den præcise sti. For at løse det problem opretter du en .htaccess-fil i din mappe og skriver deny from all i den.
Avatar billede Fiber Bjørn Juniormester
05. juni 2011 - 12:30 #9
??? jeg er ikke helt med.

Hvis jeg kun må kunne hente denne fil TEST.DOC
1: via et login - login giver adgang til en mappe
2: Brugeren må hente alle filer i denne mappe
3: hvis brugeren ikke er logget ind men stadig kender den præcise sti kan bruger ikke hente filen - skal være logget ind.
4: Kan jeg godt lave flere .htaccess-fil / altså en til hver mappe?

NB: Kan jeg genåbne dette spørgsmål eller bliver jeg nød til at lave et nyt spørgsmål?
Avatar billede wanze Nybegynder
05. juni 2011 - 15:34 #10
Idéen er, at du lader PHP bestemme hvilke filer en given bruger må hente via det eksempel jeg skrev tidligere. Du bruger .htaccess-filen til at gøre så filerne ikke kan tilgås direkte, altså uden om PHP.

Du kan bare genåbne spørgsmålet og give point, hvis problemet bliver løst - ellers er det ikke nødvendigt. For nu kan vi bare blive i det her spørgsmål.
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