Avatar billede php_programmoer Nybegynder
09. november 2005 - 17:06 Der er 13 kommentarer og
1 løsning

Har et loginsystem som ikke virker optimalt

Nu er det sådan at jeg er i færd med at lave et loginsystem samt et administrator panel; men har et lille problem - nemlig at den ikke tjekker om det er admin der logger ind eller normal bruger. Jeg har lavet en funktion som burde tjekke det, men det gør den altså ikke :)

koden som burde tjekke det:

if ($_SESSION['brugernavn'] == Admin) {
header("location: admin_panel.php");
}

findes der en smartere måde ?
Avatar billede jaw Nybegynder
09. november 2005 - 17:07 #1
Prøv:
if ($_SESSION['brugernavn'] == "Admin") {
Avatar billede jaw Nybegynder
09. november 2005 - 17:07 #2
Men hvad sker der hvis brugeren så selv går til admin_panel.php i adresselinien? Har han så adgang? Det er jo ikke så godt :)
Avatar billede php_programmoer Nybegynder
09. november 2005 - 17:10 #3
Nej, så har han ikke adgang, det er skam session beskyttet ;)

men jeg prøver lige din jaw!
Avatar billede php_programmoer Nybegynder
09. november 2005 - 17:12 #4
Ja, nu virker det, men er der ikke en smartere måde ?
for den der kan da nemt brydes ?
Avatar billede jaw Nybegynder
09. november 2005 - 17:13 #5
Kan den nemt brydes? De færreste ting er jo 100% sikre...
Avatar billede php_programmoer Nybegynder
09. november 2005 - 17:15 #6
Nej, har du fuldstændig ret i, men altså den tjekker jo bare om brugernavnet man er logget ind som er admin. Synes du at det er sikkert nok ? evt har du idéer til forbedring ?

læg da også lige et svar..
Avatar billede jaw Nybegynder
09. november 2005 - 17:16 #7
Nåå, men selve logindelen kunne jeg jo ikke se. Men du har vel defineret et adgangskodetjek, så den session kun bliver sat hvis adgangskoden også er rigtig. Og så er det såmænd i mine øjne rimelig sikkert - hvis den del af scriptet er :)
Avatar billede php_programmoer Nybegynder
09. november 2005 - 17:17 #8
Ja ja, det har jeg da gjort ->

if($row['kodeord'] == $_POST['kodeord'])
{
//Brugeren har indtastet rigtige oplysninger, nu skal han gemmes i sessioner
$_SESSION['brugernavn'] = $_POST['brugernavn'];
//Derudover skal han sendes til en hemlig side, hvorpå der bliver tjekket om han er logget ind
header("location: logget_ind.php");
} else {
//Brugeren har skrevet et forkert kodeord
//Sender brugeren tilbage til login.htm ved brug af en header
header("location. login.htm");
exit;
}

men dit svar er accepteret!
Avatar billede php_programmoer Nybegynder
09. november 2005 - 17:19 #9
der skulle have stået login.php i min kommentar, men det er fordi jeg normalt ikke har kommentare skrev bare lige en nu :)
Avatar billede jaw Nybegynder
09. november 2005 - 17:20 #10
Jojo, men pointen er der jo, og det tror jeg såmænd ikke er helt tosset, medmindre du skal ud i SSL-forbindelser og hvad der ellers er :)

Og tak...
Avatar billede php_programmoer Nybegynder
09. november 2005 - 17:22 #11
Det er mig der takker :)
Avatar billede inctor Nybegynder
09. november 2005 - 21:50 #12
Nok er et svar givet, men man kunne inde i Tabellen lave en row som hedder status, og at den status skule være ADMIN eller et bestemt tal før at den side kom, det bruger jeg i mit Admin system, det er umuligt at bryde da ingen har adgang til selve databasen og kan ændre i det ..

bare en lille kommentar .. :D
Avatar billede jaw Nybegynder
09. november 2005 - 22:13 #13
Bruger jeg også, men vel egentlig kun nødvendigt i det øjeblik du har flere niveauer :) ?
Avatar billede inctor Nybegynder
10. november 2005 - 09:03 #14
Jaa , den kan bruges til man kan uddele Status'er , altså admin, coadmin, vedligeholder osv .. jeg synes den er god , men kan oZz bruges selvom man kun har et niveau .. man kan jo altid udvide Status'erne .. :D ;D
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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