Avatar billede supermichael Nybegynder
03. januar 2006 - 04:25 Der er 3 kommentarer og
1 løsning

Check om bruger har adgang til htaccess beskyttet mappe

Hej allesammen

Jeg forsøger at få et loginsystem op at køre med htaccess.

Indtil nu har jeg lavet en mappe med åben adgang for alle brugere. I den mappe findes tre andre mapper der er beskyttet. Hver mappe kræver at man er med i den gruppe som adgangen er givet til.

Mit ønske er at lave en side med henvisning til de beskyttede mapper, men det nytter jo ikke noget at lave et link til en mappe som brugeren ikke har adgang til.

Jeg ønsker derfor at finde en måde hvorpå jeg kan checke om brugeren har adgang, så jeg derefter kan få php til at lave henvisningerne.

Jeg ved at jeg evt. kunne bruge php til at checke htaccess gruppe-fil, men jeg håber på at der er en nemmere løsning.

På forhånd tak.
Avatar billede udvikler Nybegynder
03. januar 2006 - 07:10 #1
du kunne evt. tildele hver bruger en status, fx via en session. Derefter giver du hver mappe samme status fx:

brugernavn: Jens
Kodeord: blabla
Status: normal

brugernavn: Simon
Kodeord: hahaha
Status: coadmin

brugernavn: Peter
Kodeord: hmmmmm
Status: admin

og så mapperne

Mappe navn: hemmeligt-1
Status: normal

Mappe navn: hemmeligt-2
Status: coadmin

Mappe navn: hemmeligt-3
Status: admin

så kan du bare tjekke det på statuserne..

if (brugerstatus == mappestatus) {
//adgang
}else{
//ikke adgang - henvisning til login
}


Håber det var brugbart
Avatar billede supermichael Nybegynder
03. januar 2006 - 12:32 #2
Det kræver vist lidt for meget arbejde. Jeg henter jo navnene fra et htpasswd dokument hvor de står som username:password, så det er ikke så nemt at tilføje en session. eller handy for den sags skyld.

Jeg har i stedet tænkt lidt på at lave det script alligevel. Jeg poster det lige når jeg er færdig. Hvis nogen skulle kende en bedre løsning så skriv :-)

men tak for din insats -aco-
Avatar billede supermichael Nybegynder
03. januar 2006 - 13:10 #3
Jeg har skrevet scriptet nu..

Det skal først lige siges at min htaccess gruppefil ligger i samme mappe som scriptet (den med adgang for alle brugere). Filen ser således ud:

admins: bendix michael
experts: marie bendix michael lars brian leon ib jan
supers: michael jan bendix

For at checke hvilke grupper brugeren er med i, har jeg lavet scriptet nedenfor

<?php
$username = $_SERVER['PHP_AUTH_USER'];
$file = file_get_contents("./.gruppepasswd");

$groups = explode("\n", $file);
foreach($groups as $group){
    $temp_array = explode(": ", $group);
    $group_array[] = explode(" ", $temp_array['1']);
}

if(in_array($username, $group_array['0']) == true){   
    echo "<a href= \"./admins/\">admins_folder</a><br />";
}
if(in_array($username, $group_array['1']) == true){   
    echo "<a href= \"./experts/\">experts_folder</a><br />";
}
if(in_array($username, $group_array['2']) == true){   
    echo "<a href= \"./supers/\">supers_folder</a><br />";
}

?>

Scriptet søger efter brugerens navn i hver gruppe (hver $group_array) og hvis den finder brugernavnet, skriver den link-adressen.
Avatar billede supermichael Nybegynder
12. februar 2007 - 00:50 #4
Haps!
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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