login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Admin or not?

Offline Simax - 11/07/2007 22:47
Avatar van SimaxOnbekend Beste mensen,

Ik zou graag met behulp van sessions willen controleren of iemand rechten heeft een pagina te mogen inkijken. Sommige paginas mogen namelijk alleen toegankelijk zijn voor admins.

Alle paginas worden geinclude vanuit index.php in div.content.
Hoe kan ik nu het beste nagaan of de pagina mag worden weergegeven aan iedereen of alleen aan admins?

Alvast bedankt!

10 antwoorden

Gesponsorde links
Offline Bruud - 11/07/2007 22:55
Avatar van Bruud Nieuw lid if($_session['user'] == "admin")
{
bla bla
}
dan moet je als je als admin inlogt admin opslaan als $_session['user']
Offline Simax - 11/07/2007 23:02
Avatar van Simax Onbekend Ja oke,
dat begrijp wel.

Maar kan ik dit het beste op index.php controleren of
op iedere pagina apart?
Offline smoos - 11/07/2007 23:05
Avatar van smoos PHP gevorderde Iedere pagina appart
want voor elke pagina heb je weer andere rechten nodig.

En je kan achteraf altijd opvangen of hij het mag zien ja/nee en daarop actie ondernemen
Offline Simax - 11/07/2007 23:07
Avatar van Simax Onbekend Oke.

Maar is het niet handiger om bv. in een array te zetten welke paginas een admin mag zien & een array voor de paginas die een member mag zien ofzo?
Offline smoos - 11/07/2007 23:10
Avatar van smoos PHP gevorderde Ja dat is idd handig als je een admin paneel inbouwt in je site. Maar als je her en der een pagina hebt waar de admin net even wat meer kan dan is dat weer 'krom'

Je moet ook kijken naar hoeveel recht niveau's je hebt. Jij hebt het alleen over Admin en Member. Maar twee, dan valt het nog wel te doen om het in een array te rossen. Op mijn site zijn meer dan 20 recht opties, dan is daar geen beginnen aan.
Offline Simax - 11/07/2007 23:12
Avatar van Simax Onbekend Oke.

Ik noem maar een paar voorbeelden,
maar gebruik 5 verschillende ranks tot nog toe.
Hoe kan ik dan het beste controleren of
de pagina mag worden weergegeven?
Offline Wouser - 11/07/2007 23:13 (laatste wijziging 11/07/2007 23:19)
Avatar van Wouser PHP interesse dat kan maar moet je ook je pagina navigatie in index.php zetten...

PS: bug... wordt een spatie verwijderd tussen in & index.php...

Weer verder met verhaal...

  1. <?php
  2. if ($_GET['page'] == 'admin' && $_SESSION['rang'] == 'admin')
  3. {
  4. include 'admin.php';
  5. }
  6. else if ($_GET['page'] == 'leden')
  7. {
  8. include 'leden.php';
  9. }
  10. else if ($_GET['page'] == 'geheim' && $_SESSION['rang'] == 'admin')
  11. {
  12. .... etc
  13. ?>


of iets dergelijks ;)
Offline Simax - 11/07/2007 23:17 (laatste wijziging 12/07/2007 10:48)
Avatar van Simax Onbekend Hoe bedoel je 'pagina navigatie'?

Nu gebruik ik in index.php
  1. <?php
  2. $pages = array("home", "members", "new_members");
  3.  
  4. if(isset($_GET["page"]))
  5. {
  6. if(in_array($_GET["page"],$pages))
  7. {
  8. if(file_exists($_GET["page"].".php"))
  9. {
  10. include ($_GET["page"].".php");
  11. }
  12. else
  13. {
  14. echo ("<p class='error'>De pagina bestaat niet.</p>");
  15. }
  16. }
  17. else
  18. {
  19. echo ("<p class='error'>Ongeldige pagina opgegeven.</p>");
  20. }
  21. }
  22. ?>


Edit
Ik zou $pages kunnen vervangen door $admin.
En daar alle paginas kunnen inzetten die voor admins toegankelijk zijn.
En dit voor alle ranks opnieuw kunnen doen,
maar is dit wel zo handig?
Offline Thomas - 12/07/2007 14:15
Avatar van Thomas Moderator Op de pagina zelf zul je moeten controleren of iemand toegang heeft of niet, want als ze de "controlepagina" voorbij zouden zijn (Wouser zijn voorbeeld) door bijvoorbeeld de include rechtstreeks aan te roepen*, dan zou de pagina niet meer beveiligd zijn, wat natuurlijk niet de bedoeling is.

* Het rechtstreeks aanroepen van includes is ook eenvoudig op te lossen door bijvoorbeeld op een index-pagina (waarmee alle andere pagina's worden geinclude) een constante te definiëren met define(), en hier in de include op te controleren (is_defined).
Een alternatieve methode om dit probleem op te lossen is alle includes in een folder te zetten die niet toegankelijk is (m.b.v. .htaccess - vereist een Apache webserver).
Of plaats de includes buiten de webdirectory.
Offline Simax - 12/07/2007 14:19
Avatar van Simax Onbekend Dus iedere pagina apart controleren is het beste?
Of zijn er betere methodes?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.189s