Annonser

PHP-skola del 2 - lösenordsskydd

Exempelfiler till denna artikel finns för nedladdning download exempelfiler.

Skydda dina sidor

Av olika anledningar vill man ibland ha kontroll över vilka som kan besöka olika delar av ens hemsida. Nedan följer ett exempel på script som är enkelt och kan användas av alla med webbserver som stöder PHP.

Det här tillvägagångssättet kräver att minst version 4.1.0 av PHP är installerad på den webbserver du använder. Om du inte vet vilken version du har kan du kontrollera detta (och en massa andra parametrar) genom att köra kommandot:

Detta har även beskrivits i del 1 och där finns även ovanstående kod i en exempelfil för nedladdning.

Dessutom måste ditt webbhotell vara konfigurerat på ett visst sätt för att detta ska fungera. Det enklaste är att ta filerna här och ladda upp dem till din webbserver och testköra enligt instruktionerna nedan. Har du tur så fungerar det. För dig som är intresserad av de tekniska detaljerna så kan du läsa om detta på PHP's officiella webbplats. Kortfattat så krävs det att webbhotellet kör Apache webserver med PHP som en modul och inte genom CGI. Du kan naturligtvis också ställa denna fråga till ditt webbhotell, men det går säkert snabbare att bara testa filerna.


Lägg följande kod överst i varje php-fil som du vill skydda. OBS! Tänk på att filen måste ha ändelsen php. Du kan ändra textsträngarna "Min hemsidas lösenordsskyddade sidor" samt "Du måste ange korrekt användarnamn och lösenord!" till den text du önskar. Men du får inte ändra "-tecknen.

I samma katalog som filerna som du klistrat in kodsnutten ovan lägger du in filen validate.php som ser ut som följer:

I denna kod ändrar du user1, pass1, user2 och pass2 till de användarnamn och lösenord du önskar. Vill du lägga till flera så gör du det på följande sätt:

Hoppas ni ser principen: en komma-separerad lista.

Testa att ladda upp filerna och kör skyddad.php. Då ska en ruta komma upp där du fyller i Användarnamn: user1 och lösenord: pass1. Då ska texten "Min lösenordsskyddade hemsida" visas. Om en ny inloggningsruta kommer upp betyder det antagligen att ditt webbhotell inte har sin webbserver konfigurerad på det sätt som krävs för att detta ska fungera.

 

29 kommentarer | Läs/skriv kommentarer