Adgangskontrol på hjemmesiden
Sat på siden 27-02-2004
I hæftet "Sjove effekter på hjemmesiden" (http://www.kortlink.com/sjoveeffekter ) kan du lære to enkle metoder til adgangskontrol, hvis du ikke vil have, at hvem som helst skal se en bestemt side.
Her kommer en lidt sværere metode, som til gengæld er mere sikker. Det kræver dog, at din server understøtter .htaccess-filer.
Du skal bruge en hemmelig mappe, der indeholder de sider, du ikke vil have vist til hvem som helst, og så filerne krypter.php, .htaccess og htpasswd.
Hent først dokumentet "krypter.txt", omdøb det til "krypter.php" og upload det til din server i den mappe, som du gerne vil beskytte. Du finder det på http://www.tips-og-tricks.com/filer/krypter.txt
Start derefter php-dokumentet krypter.php
Nu kan du dels læse den sti, du skal bruge i dit .htacces-dokument, dels lave brugernavne med krypterede passwords. Jeg har fx lavet brugernavnet "britt" med små bogstaver sammen med passwordet "test". Det giver følgende resultat:
Brugernavn: britt
Krypteret password: dGRkPurkuWmW2
Hvis du ikke allerede har en .htacces-fil i mappen (fx hemmelig), skal du starte notesblok (IKKE Word!) og skrive følgende i filen:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
AuthName "-- Ønsket navn, fx Administration --"
AuthType
Basic
AuthUserFile Stien fra SCRIPT_FILENAME(undtagen
krypter.php)/htpasswd
require user brugernavn
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Ret teksten ud for AuthName til det, der passer dig. Husk, at der skal være anførselstegn omkring.
I AuthUserFile skriver du den sti, som du har fundet på krypter.php
Det kan fx være noget i stil med
/home/user8972/tips-og-tricks.com/htdocs
Tilføj mappens navn til sidst, så
det ender med fx:
AuthUserFile Stien fra /home/user8972/tips-og-tricks.com/htdocs/hemmelig/htpasswd
Ud for "require user" skriver du brugernavnet, her "britt" (uden anførselstegn)
Gem nu dokumentet i din mappe "hemmelig" således:
Skriv ".htaccess" i
feltet Filnavn - MED anførselstegn rundt om.
Ret filtypen til "alle
filer".
Bemærk, at der er punktum foran navnet htaccess.
Nu mangler du bare htpasswd-filen. Den oprettes også i notesblok, og i det kopierer du teksten fra krypter.php, fx
britt:dGRkPurkuWmW2
Gem i den hemmelige mappe under navnet "htpasswd" - vælg igen alle filtyper.
Upload både .htaccess og htpasswd til din hemmelige mappe.
Vigtig tilføjelse
Bo O. skrev til mig:
Da det er meeeeeget vigtigt at stien til .htpasswd (eller hvad man nu vil kalde den ) er rigtigt opgivet i .htaccess og det desværre ikke er alle hoteller der opgiver root rigtigt. Freepaq bla. opgiver den ikke som absolut server root, men som user root og det dur ikke.
Dette lille problem har jeg løst ved at lave denne stump php. Upload til roden på serveren og du vil få din absolutte server root, men den kan også uploades til den mappe man vil have .htpasswd. Derefter udføre man scriptet og får "roden" oplyst. ( scriptet kan man kalde hvad man vil )
echo substr($SCRIPT_FILENAME, 0, strpos($SCRIPT_FILENAME, $SCRIPT_NAME) + 1);
?>
Tak for det, Bo