hjælp, med et at gøre sårn kun medlemmer kan se siden?

Tags:    php

<< < 12 > >>
Altså hvilken kode bruger man? :)
Det må gerne være sådan når man ikke er logget ind og fx. trykker på "forum" så kan man ikke komme derind og siden skriver bare fx "du skal logge ind for at se siden" men når man er logget ind kan man se selve siden :)?



Det letteste er at lave en include i toppen af de filer der skal være sikrede, hvor du tjekker om brugeren er logger ind.

Hvis brugeren er logget ind, sætter du en boolean variabel, f.eks. loggedIn til true, hvorefter du kan tjekke i koden om man er logget ind eller ej med en simpel
if(loggedIn){
}else{
echo "Du skal være logget ind for at se siden"
}

*** Skal lige siges at jeg normalt ikke koder PHP, så er ikke sikker på hvordan det skal gøres deri, men det er princippet bag sikrede sider ;) ***



Det kommer an på hvordan brugeren er logget ind på siden, om det er med session eller andet.

Men ellers er det som Simon skrev korrekt, selvfølgelig skal "loggedIn" udskiftes med kode men det er korrekt :)

Så hvis du skriver hvordan brugeren er logget ind på siden vil det være nemmere at hjælpe.



ex:

Fold kodeboks ind/udKode 




ex:

Fold kodeboks ind/udKode 


Jeg vil mene at det er bedre at deklerere en boolean variablen så men hurtigt kan tjekke igennem dokumentet hvis du f.eks. skal tjekke ved indholdet, menuen og måske en funktion i indholdet på en side ;)



Simon jeg tror det bliver alt for meget arbejde og besværlighed hvis man skal som du skriver "tjekke ved indholdet" så det meget nemmere at lave en enkelt if som spørger om man er online eller ej og så vise det indhold brugeren må se :)



Ja, men det er da også det jeg mener?

Forskellen er, at som Dennis skriver skal du ind og tjekke session username og password op imod en database for at tjekke og validere brugeren hver eneste gang du skal bestemme typen af indhold.

Hvis du f.eks. har en side hvor du har tre frames. Højre frame indeholder menuen, som består af to menuer. En når man er logget ind og en når man er logget ud. Der har du brug for at tjekke om brugeren er logget ind.

Hvis du så i midten vil tjekke om siden skal vise indholdet eller en "du skal logge ind" besked, skal du der tjekke igen.

Og hvis du så til sidst har en personlig indkøbskurv (f.eks.) til højre, som man også skal være logget ind for at se, skal du der tjekke igen.

Altså er der i dette eksempel tre steder i dokumentet der skal tjekkes.

Det jeg så mener er, at i stedet for at tjekke op imod databasen alle tre steder i dokumentet, tjekker man én gang i en include fil i toppen af dokumentet.
Der deklererer man så en boolean (true/false) variabel alt efter om man er logget ind eller ej.

Derefter senere i dokumentet kan du nøjes med at skrive:

if(loggedIn){
// Do something when user logged in
}else{
// Do something else not logged in
}

Altså kan du nøjes med at tjekke og validere brugeren op imod databsen én gang i dokumentet, og så tjekke denne boolean variabel andre steder i dokumentet ;)

Ved ikke om det gav mere mening?



Jeg har da aldrig skrevet noget omkring at tjekke op mod en database :o Eventuelt kan du jo bare kombinere det med et acceslvl og derved lave forskelligt indhold. Men du kontrollere jo stadig kun én gang med databasen (da sessionen bliver sat ved login). Ellers har jeg misforstået dig :)



Ja, Dennis, du kan godt gøre det på den måde, men det kommer lidt an på hvilket sikkerhedsniveau der er tale om.

Det er ret nemt at manipulere både sessions og cookies og dermed lave et fake login, hvorimod hvis det skal indeholde brugernavn og password der skal holdes op imod en database er det straks sværere at snyde ;)



ah ja okay det har du ret i Simon :)



Men det kommer som sagt an på hvilket sikkerhedsniveau det drejer sig om.

Når jeg arbejder med sider der kræver meget højt niveau, sætter jeg en session med id, brugernavn og et MD5 hashet adgangskode som bliver sammenlignet med databasen hver gang man bevæger sig rundt på siden, og samtidig bliver den IP man sidst loggede på med også tjekket, så selv på en bærbar hvor man holder sig inden for session tiden skifter husstand, bliver man logget af - og dermed altså selv hvis man kan lave en session eller cookie stealer på en eller anden måde, vil den sidst brugte IP ikke matche, og man vil derfor ikke blive logget ind.

Samtidig er der selvfølgeligt begrænset så man maks kan taste forkert 3 gange om ugen ved log ind hvorefter der bliver lavet et IP ban i databasen ;)



<< < 12 > >>
t