[PHP] Gebruikersidentificatiesysteem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met het maken van een gebruikersindentificatiesysteem. Ik heb het volgende boven elke pagina staan:

<?php
if ($_SESSION["userlevel"] < 3) {
echo ("U heeft voldoende rechten om deze pagina te bekijken.<br>Klik <a href=\"uitloggen.php\">hier</a> om uit te loggen");
}
else {

Achter else moet dan de gewone code van elke pagina komen te staan, kan dat gewoon onder else staan, of moet ik nog een aparte handeling verrichten.

Acties:
  • 0 Henk 'm!

  • Aphelion
  • Registratie: Januari 2002
  • Laatst online: 18-09 22:38
Ik denk inderdaad dat je het onder je else moet zetten.

Maar kan je het controlesysteem niet maken dmv een include waar je via de sessie het vereiste userlevel ook meegeeft? dan is het stukje code sneller te wijzigen ..

Feeling lonely and content at the same time, I believe, is a rare kind of happiness


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:31

gorgi_19

Kruimeltjes zijn weer op :9

Waarom moet je het in een if-else-end if constructie zetten?

code:
1
2
3
4
5
If userlevel < 3 then
   Redirect naar geen toegangspagina
end if

'Normale code


En waarom werk je niet met rollen? Geeft dat niet een stuk meer flexibiliteit?

[ Voor 23% gewijzigd door gorgi_19 op 13-01-2004 11:54 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • FlowinG
  • Registratie: Maart 2003
  • Laatst online: 19-09 17:00
ik zelf heb het in een include die toegang beheert. Boven het include regeltje staat de toegang die de gebruiker moeten hebben.

Tekst in include:
PHP:
1
2
3
4
5
6
if($_SESSION['rechten']  < $pag_rechten) {
  header("Location: login.php?waarvan=".urlencode($_SERVER['REQUEST_URI']));
  exit;
} else {
  $str_login = "U bent ingelogd onder de naam: ".$_SESSION['user']."<br />Klik <a href=\"logout.php\">hier</a> om uit te loggen";
}


Ergens anders in de pagina wordt $str_login ge-echo'd.

[ Voor 13% gewijzigd door FlowinG op 13-01-2004 13:30 . Reden: typo in script: punt vergeten ]


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Ik gebruik zoiets:
ASP.NET Visual Basic:
1
2
<!-- #include file="auth.inc" -->
RequireRole(ROLE_ADMINISTRATOR)


RequireRole bevat code om op te zoeken of de gebruiker die rol bezit en zo niet redirect naar een error page.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:31

gorgi_19

Kruimeltjes zijn weer op :9

Gerco schreef op 13 januari 2004 @ 12:47:
Ik gebruik zoiets:
ASP.NET Visual Basic:
1
2
<!-- #include file="auth.inc" -->
RequireRole(ROLE_ADMINISTRATOR)


RequireRole bevat code om op te zoeken of de gebruiker die rol bezit en zo niet redirect naar een error page.
Heb je ook rekening gehouden dat zowel Administrators en editors rechten hebben? Oftewel: meerdere rollen toegang kunnen hebben?
* gorgi_19 curious :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 16:14

pietje63

RTFM

Kort antwoord op de TS,
alles wat onder if staat is voor de personen die ingelogd zijn,
alles wat onder else staat is voor de personen die niet ingelogd zijn. Je kunt ipv else ook zeggen else if ($_SESSION["userlevel"] > 3) { Dit komt op hetzelfde beer,

Via een include werken is aan te raden maar beetje offtopic..

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb nog een vraagje aan FlowinG.
Als ik jou code precies toevoeg, dan komt er een foutmelding.
Wat is de letterlijke code die jij in je include bestand hebt staan?

Bij voorbaat dank

Acties:
  • 0 Henk 'm!

  • FlowinG
  • Registratie: Maart 2003
  • Laatst online: 19-09 17:00
ik zie dat ik een typefout heb gemaakt. (regel 2 - punt vergeten voor urlencode)
PHP:
1
2
3
4
5
6
if($_SESSION['rechten']  < $pag_rechten) {
  header("Location: login.php?waarvan=".urlencode($_SERVER['REQUEST_URI']));
  exit;
} else {
  $str_login = "U bent ingelogd onder de naam: ".$_SESSION['user']."<br />Klik <a href=\"logout.php\">hier</a> om uit te loggen";
}

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Waarschijnlijk zit de error in regel 2, omdat daar volgens mij een punt ( . ) mist.

.edit: hmm te laat.. :z

Verder is het helemaal geen ramp zelf eens iets te proberen ipv de letterlijke code te vragen. Gewoon in alle pagina's een include doen, met daarin een check. Is het userlevel hoog genoeg echo je een link (of whatever), en anders laat je niets zien. Of, checken of het userlevel klopt, is het te laag doorsturen naar een andere pagina. Vrij basic imo, en zat scripts over te vinden op bijv. www.hotscripts.com :)

[ Voor 4% gewijzigd door OkkE op 13-01-2004 13:31 ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.

Pagina: 1