login  Naam:   Wachtwoord: 
Registreer je!
 Forum

toegang beperking

Offline gerits - 12/07/2007 15:59 (laatste wijziging 12/07/2007 16:01)
Avatar van geritsLid hallo, ik heb een soort van toegang per gebruiker nodig...
hoe kan ik dit best doen, want ik geraak er maar niet uit.

Om te beginnen:
:rechts: op de beginpagina zijn 10 knoppen te zien:
* nieuws
* info
* wedstrijden
* kalender
* fotos
* forum
* contact
* aanmelden
* instellingen
* administratie
als er niemand aangemeld is moet er alleen de eerste 7 komen. Van het moment dat er iemand aangemeld is moeten er aan de hand van zijn functie (gebruiker, moderator, administrator) een bepaalde knoppen verborgen/weergegeven worden. vb: een gebruiker mag niet aan de knop administrator komen.
Deze pagina staat volledig in een mysql database, zodat enkel de gegevens geladen worden die nodig zijn, misschien kennen jullie een beter/snellere oplossing

:rechts: een 2de ding hierbij is dat ook de pagina's beschermd moeten worden. Als een persoon aagemeld is mag hij niet meer naar http://site.be/aanmelden gaan om zich nog eens aan te melden.

alvast bedankt, ik zit er echt mee vast...
ik heb al vanalles geprobeerd, maar geraak altijd in de knoei...

11 antwoorden

Gesponsorde links
Offline Simax - 12/07/2007 16:02
Avatar van Simax Onbekend
Citaat:
ik heb al vanalles geprobeerd


Wat heb je al geprobeerd?
Offline gerits - 12/07/2007 16:07
Avatar van gerits Lid ik heb geprobeerd om die knoppen in de mysql in 1 vak te zeggen
vb: 1,2,3,4,5,6,7,9 (dit zijn dus de knoppen genummerd)
en dan uitlezen en splitsen en op basis hiervan de knoppen laden, maar zo werd knop 10 ook weergegeven bij gebruiker, terwijl deze niet in de lijst staat...

een 2de manier heb ik de bevoegdheden van de homepagina in een apparte tabel gezet:
home_id knop1 knop2 knop3 knop4 knop5 knop6 knop7 knop8 knop 9 knop 10
maar hiermee zat ik al weer vast hoe ik dan verder kon gaan met de beperkingen in de rest van de site, want een kolom toevoegen is nogal moeilijker dan een veldje in een tabel aanpassen.
Offline Koen - 12/07/2007 16:25
Avatar van Koen PHP expert Bij de mysql tabel voor je gebruikers geef je een extra tabel mee, die je status noemt (gebruiker, moderator of administrator)
Wanneer een persoon dan inlogd sla je zijn rank op in een sessie.
Bij je pagina links, kijk je met if en elseif of hij ingelogd is en welke rank hij dan heeft, aan de hand daarvan plaats je je links neer, je moet ook wel in elke pagina waar je voor moet zijn ingelogd de gebruiker controleren opstatus, dat hij niet die supergevoelige administrator pagina tegenkomt.
Offline gerits - 12/07/2007 16:29
Avatar van gerits Lid dan heb ik administrator, maar stel nu dat ik er nog 10 ranks bij voeg, wat dan?
Offline Koen - 12/07/2007 16:35
Avatar van Koen PHP expert
gerits schreef:
dan heb ik administrator

-> Wat bedoel je hier mee?

Zelfde principe, andere manier is de switch:
  1. <?
  2. // zorg dat je $_SESSION['rank'] meegeeft bij de login
  3. if(IsSet($_SESSION['ingelogd'])) { // of wat je gebruikt om te kijken of hij ingelogd is.
  4. switch($_SESSION['rank']) {
  5. case 'gebruiker': // user = gewone gebruiker
  6. echo '<a href="link.php">Linkje</a>';
  7. echo '<a href="link2.php">Linkje2</a>';
  8. break;
  9. case 'moderator': // mods
  10. echo '<a href="linkmod.php">Linkje voor Mods</a>';
  11. echo '<a href="linkmod2.php">Linkje voor Mods2</a>';
  12. break;
  13. case 'administrator': // admins
  14. echo '<a href="linkadmin.php">Linkje voor admins</a>';
  15. echo '<a href="linkadmin2.php">Linkje voor admins2</a>';
  16. break;
  17. default:
  18. echo 'Error bij controleren van de rank';
  19. }
  20. } else {
  21. echo 'linkjes voor niet ingelogde personen';
  22. }
Offline gerits - 12/07/2007 16:39
Avatar van gerits Lid dan heb ik pagina restrictie, maar hoe doe ik dit dan met die knoppen?
maar moet ik dan ook html aanpassen als ik een rank toevoeg in de database? ook een beetje moeilijk doen misschien...

ik weet het, ik ben veeleisend  
Offline Koen - 12/07/2007 16:50 (laatste wijziging 12/07/2007 17:01)
Avatar van Koen PHP expert
gerits schreef:
ik weet het, ik ben veeleisend  

Inderdaad 
Ehm, dat kan ja.
moet je een extra MYSQL db aanmaken
  1. rank(VARCHAR(50))----------paginas(LONGTEXT)

en bij je paginas ding
  1. <?
  2. if(IsSet($_SESSION['ingelogd'])) { // wat jij gebruikt om te controleren..
  3. $res = mysql_query("SELECT * FROM `ranks`");
  4. while($record = mysql_fetch_assoc($res)) {
  5. if($_SESSION['rank'] == $record['rank']) {
  6. echo $record['paginas'];
  7. }
  8. }
  9. } else {
  10. echo 'links voor niet ingelogde mensen';
  11. }
  12. ?>

zo kan je dus gewoon een rank toevoegen met MySQL en de paginas ervoor en het spel is opgelost.

Edit: Heb je 2de probleem nu pas gelezen:
  1. <?
  2. if(!IsSet($_SESSION['ingelogd'])) {
  3. header('location : aanmelden.php');
  4. exit();
  5. }
  6. ?>

Zet je dan boven elke beveiligde pagina
Offline gerits - 12/07/2007 17:18
Avatar van gerits Lid ik ga het eens probere, zo te zien moet dit wel lukken 
alvast heel veel bedankt (als er een kus emoticon was zou ik hem nog willen gebruiken)
Offline Koen - 12/07/2007 17:22
Avatar van Koen PHP expert
gerits schreef:
(als er een kus emoticon was zou ik hem nog willen gebruiken)

Ik krijg al spijt dat ik je geholpen had 
Offline gerits - 12/07/2007 17:34
Avatar van gerits Lid was maar grap za 
maar nog een vraagje:
rank(VARCHAR(50))----------paginas(LONGTEXT)
wat moet er dan precies in de 'paginas(LONGTEXT) komen te staan?
Offline Koen - 12/07/2007 17:41
Avatar van Koen PHP expert
  1. <a href="pagina.php">1</a><br />
  2. <a href="pagina.php">2</a><br />
  3. <a href="pagina.php">3</a><br />
  4. <a href="pagina.php">4</a><br />
  5. <a href="pagina.php">5</a><br />

Dat?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.251s