Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Hantera sessions i PHP del (2/2)

Postad 2003-01-25 av Niklas Andersson i sektionen ASP.NET, C#, Okategoriserat med 2 Kommentarer | Läst av: 11191, Betyg: 80%

Förord

Då var det dags för den andre och avslutande artikeln i denna serie. I den här delen tänker jag gå igenom om hur du kan skapa ett enkelt inloggningssystem med hjälp av sessions i PHP. Innan du ger dig på den här artikeln så rekommenderar jag dig verkligen att du läser del ett först, för annars lär du inte förstå speciellt mycket om du inte är en van PHP-programmerare.
Innehåll
  » Planering
  » Första filen – index.php
  » Inloggningsfilen – login.php
  » Indexsidan – index_online.php
  » Utloggningssidan – logout.php
  » Slutsats
  » Avslutningsvis
Relaterade artiklar
  » Hantera sessions i PHP (del 1/2)


Planering

Innan man börjar med ett PHP-script som kräver fler än 3-4 sidor så är det smidigt om man planerar lite först. Hur många filer kan vi tänkas behöva? Vilka funktioner krävs? Har vi tillgång till någon databas? Vad kan vi tänkas ha problem med? Och så vidare. Listan kan göras lång.

Till att börja med så behöver vi fyra olika PHP-filer. Vi behöver en inloggningssida där man fyller i ett användarnamn och ett lösenord, denna fil har jag valt att döpa till ”index.php”. Sedan behöver vi en fil som loggar in användaren, och kontrollerar om användarnamnet och lösenordet stämmer – givetvis, denna fil kallar jag ”login.php”. När användaren sedan väl är inloggad så behöver vi också en sida som han/hon ska komma till, denna sida kallar vi ”index_online.php”. Den fjärde och sista filen kallar vi för ”logout.php”, och ska i princip bara logga ut användaren och slussa tillbaka den till inloggningssidan – ”index.php”.


Första filen – index.php

Den första filen skulle lika gärna kunna vara en vanlig HTML-fil, då den inte innehåller någon som helst PHP-kod. Som jag beskrev i den lilla planeringen ovan så ska den endast innehålla två fält där man kan skriva in sitt användarnamn och lösenord. Så här kan den se ut:








Användarnamn:



Lösenord:











Vad som är viktigt på denna sida kan man säga är två saker. För det första måste man se till att vi skickar vidare besökaren till rätt sida efter han/hon fyllt i sina inloggningsuppgifter. Därefter måste vi namnge de två fälten så att vi kan plocka upp de data som besökaren fyller i där sedan. Annars så ska det nog inte vara några som helst konstigheter med den här filen!


Inloggningsfilen – login.php

Den här filen kan nog vara något mer intressant, det är nämligen här vi ska kontrollera om inloggningsuppgifterna är korrekta samt slussa vidare besökaren om de stämmer. Vi börjar med att skapa två variabler ”$username” och ”$password”, som ska innehålla de inloggningsuppgifter som besökaren ska knappa in för att komma vidare. Därefter kontrollerar vi om besökaren inte bara knappat in ”login.php” i adressfältet, i så fall skickar vi tillbaka besökaren till inloggningssidan. Vi kontrollerar även om inloggningsuppgifterna är korrekta, vi sätter då igång sessionmotorn och registrerar en variabel som ska hålla koll på besökaren samt slussar vidare honom/henne till ”index_online.php”.


< ?php
$username = "a"; //användarnamn
$password = "a"; //lösenord

if(isset($_POST["frm_user"]) && isset($_POST["frm_pass"]))
{

if($_POST["frm_user"] == $username && $_POST["frm_pass"] == $password)
{
//användarnamnet och lösenordet var korrekt, startar session motorn
session_start();

//registrerar en varibel så vi kan hålla koll på besökaren
$userid = $username;
session_register("userid");

//skickar besökaren till inloggningssidan
header("Location: index_online.php");

} else {
//användarnamnet eller lösenord var fel, vi skickar tillbaka besökaren till inloggningssidan
header("Location: index.php");
}

} else {
//besökaren har trorligtvis knappat in login.php i webbläsaren, vi skickar tillbaka honom/henne till inloggningssidan
header("Location: index.php");
}
?>


Som ni ser så har jag lagt in en hel del kommentarer här, så programmeringskoden bör inte vara så speciellt svår att förstå.




Indexsidan – index_online.php

Det här är sidan man kommer till om man knappat in korrekta inloggningsuppgifter. Den största funktionen på den här sidan är egentligen att den kontrollerar om besökaren som kommer till sidan verkligen är inloggad. Skriver han/hon in ”index_online.php” så ska den ju inte gå att komma åt om han/hon inte knappat in rätt inloggningsuppgifter före, så därför gör vi denna koll. Vi skriver även ut användarnamnet i en hälsningsfras överst på denna sida.


session_start();

if(!(session_is_registered('userid')))
{
//användaren är inte inloggad, skickar tillbaka honom till inloggningssidan
header("Location: index.php");
}
?>




Hej !


Du är nu inloggad i detta inloggningssystem.



Klicka på logga ut för att logga ut!

Logga ut!






Observera att jag även klämmer in en liten länk här till logga ut-sidan, som vi ska beskriva här näst.


Utloggningssidan – logout.php

För att spara lite på kraften hos servern så ser vi även till att det finns en logga ut funktion i vårt inloggningssytem. Den här filen raderar samtliga variabler som registrerats för den specifika besökaren och skickar vidare honom/henne tillbaka till inloggningssidan igen.


session_start();

//raderar samtliga sessionvariabler för denna besökare
session_destroy();

//skickar tillbaka honom till inloggningssidan
header("Location: index.php");
?>



Slutsats

Svårare än så här är det alltså inte att göra ett eget litet inloggningssystem i PHP. Det som man nu kan börja klura på själv är hur man till exempel ska programmera för att logga in användare som hämtas ur en databas, vilket gör inloggningssystemet lite mer avancerat.


Avslutningsvis

Nu när du har läst klart den här artikeln så har du förhoppningsvis inga frågor, men någon fråga här och var brukar alltid dyka upp ändå. Hör gärna av dig till mig på niklas@ixnay-it.com eller smidigast är nog om du skickar ett iMail till mig här på Pellesoft.nu med dina frågor. Kom också gärna med förslag på förbättringar, synpunkter, klagomål, kommentarer, ja allt möjligt som är relaterat till ämnet så att jag kan skriva roligare, bättre och framförallt intressantare artiklar.
Upp

2 Kommentarer


  1. Gäst Konto
    16 aug 2003

    Det har kommit med ett litet mellanslag mellan "<" och "?php" i början på Inloggningsfilen - login.php. I praktiken skulle det medföra att både användarnamn och lösenord avslöjas i webbläsaren. Men givetvis förstår jag att det bara råkade komma med ett extra mellanslag nu när författaren skrev artikeln, för överallt annars sitter märket


  2. Jonathan Wening
    21 aug 2007

    Det står följande i koden: if (!(session_is_registered('min_variabel'))) { echo $_SESSION["min_variable"]; } else { echo "Variabeln är inte registrerad!
    \n"; } och det betyder ju att om session INTE är registrerad så ska koden skriva den registrerade variablen, vilket kommer leda till ett fel. Dessutom står det min_variabel på ett ställe och min_variable på det andra Jag testade koden för att vara säker och då händer ingenting eftersom den försöker skriva ut en variable som inte är registrerad. Skulle du nu ha min_variabel registrerad skulle jag få fel-medellandet "Variabeln är inte registrerad!" Annars bra artikel, går genom grunderna bra! MVH Jonathan

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 155
27 952
271 704
774
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies