Functies gekoppeld aan rangen
Voor mijn laatste jaar IT & Netwerken moet ik een eindwerk maken en ik heb gekozen voor het bouwen van een website.
Op het moment is het me gelukt om te programmeren dat mensen zich kunnen registreren en inloggen. Het is de bedoeling dat er een forum en alles komt, maar het forum moet ik nog even achterwegen laten. Toch zou ik al graag ervoor kunnen zorgen dat bepaalde links in het menu en functies enkel zichtbaar zijn voor een bepaalde groep gebruikers. In dit geval zal het gaan om moderators.
Daarnaast zou ik graag ook al weten hoe ik ervoor kan zorgen dat bepaalde links in het menu onzichtbaar zijn voor gasten die geen account hebben. Ik weet wel al hoe ik ervoor kan zorgen dat gasten zonder account geen toegang hebben op bepaalde pagina's, maar je ziet dan wel nog steeds als gast de link in het menu. Ik hoop dat het een beetje duidelijk is en alvast bedankt voor de hulp. :')
Op die zelfde manier als je de gasten blokkeert op de pagina. Met een IF functie kun je ook bijvoorbeeld zeggen dat bepaalde links niet getoond moeten worden.
http://www.phphulp.nl/php/forum/topic/login-script-php-mysql/93015/#666385
Misschien kan dat inspiratie leveren
Pagina's op onzichtbaar en zichtbaar zetten voort bepaalde users heb ik op de volgende manier gedaan:
Inloggen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
session_start();
if (isset($_POST['username']) && isset($_POST['wachtwoord']))
{
$gebruikersnaam=$_POST['username'];
$wachtwoord=$_POST['wachtwoord'];
include('verbind.php');
$query='SELECT gebruikersnaam, wachtwoord FROM gebruikers '."WHERE gebruikersnaam='$gebruikersnaam' "." AND wachtwoord='$wachtwoord' "." AND rank=0";
$result=mysql_query($query,$cn);
if(mysql_num_rows($result) >0)
{
$_SESSION['valid_user'] = $gebruikersnaam;
}
}
if (isset($_POST['username']) && isset($_POST['wachtwoord']))
{
$gebruikersnaam=$_POST['username'];
$wachtwoord=$_POST['wachtwoord'];
include('verbind.php');
$query='SELECT gebruikersnaam, wachtwoord FROM gebruikers '."WHERE gebruikersnaam='$gebruikersnaam' "." AND wachtwoord='$wachtwoord' "." AND rank=1";
$result=mysql_query($query,$cn);
if(mysql_num_rows($result) >0)
{
$_SESSION['mod_user'] = $gebruikersnaam;
}
}
?>
session_start();
if (isset($_POST['username']) && isset($_POST['wachtwoord']))
{
$gebruikersnaam=$_POST['username'];
$wachtwoord=$_POST['wachtwoord'];
include('verbind.php');
$query='SELECT gebruikersnaam, wachtwoord FROM gebruikers '."WHERE gebruikersnaam='$gebruikersnaam' "." AND wachtwoord='$wachtwoord' "." AND rank=0";
$result=mysql_query($query,$cn);
if(mysql_num_rows($result) >0)
{
$_SESSION['valid_user'] = $gebruikersnaam;
}
}
if (isset($_POST['username']) && isset($_POST['wachtwoord']))
{
$gebruikersnaam=$_POST['username'];
$wachtwoord=$_POST['wachtwoord'];
include('verbind.php');
$query='SELECT gebruikersnaam, wachtwoord FROM gebruikers '."WHERE gebruikersnaam='$gebruikersnaam' "." AND wachtwoord='$wachtwoord' "." AND rank=1";
$result=mysql_query($query,$cn);
if(mysql_num_rows($result) >0)
{
$_SESSION['mod_user'] = $gebruikersnaam;
}
}
?>
Voorbeeld pagina
Code (php)
Nu zou ik bijvoorbeeld deze links niet zichtbaar willen hebben in mijn menu voor gasten die zicht niet aangemeld hebben.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<html>
<LI>
<A HREF="#">Profiel</A>
<UL>
<LI><A HREF="#">Bekijk profiel</A></LI>
<LI><A HREF="?action=profielsettings">Bewerk profiel</A></LI>
<LI><A HREF="#">Privberichten</A></LI>
<LI><A HREF="?action=instellingen">Instellingen</A></LI>
</UL>
</LI>
</html>
<LI>
<A HREF="#">Profiel</A>
<UL>
<LI><A HREF="#">Bekijk profiel</A></LI>
<LI><A HREF="?action=profielsettings">Bewerk profiel</A></LI>
<LI><A HREF="#">Privberichten</A></LI>
<LI><A HREF="?action=instellingen">Instellingen</A></LI>
</UL>
</LI>
</html>
Ik heb al een paar dingen geprobeerd waarvan ik eigenlijk al dacht dat ze niet zouden werken, maar ik kon altijd proberen. Ze werkten dus ook niet, maar ik weet dus geen manier om ze onzichtbaar te krijgen voor niet aangemelde gasten.
Gewijzigd op 29/11/2013 14:51:49 door Glenn B
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<LI>
<?php if(!isset($_SESSION['valid_user'])) : ?>
<A HREF="#">Profiel</A>
<UL>
<LI><A HREF="#">Bekijk profiel</A></LI>
<LI><A HREF="?action=profielsettings">Bewerk profiel</A></LI>
<LI><A HREF="#">Privberichten</A></LI>
<LI><A HREF="?action=instellingen">Instellingen</A></LI>
</UL>
<?php endif; ?>
</LI>
</html>
<LI>
<?php if(!isset($_SESSION['valid_user'])) : ?>
<A HREF="#">Profiel</A>
<UL>
<LI><A HREF="#">Bekijk profiel</A></LI>
<LI><A HREF="?action=profielsettings">Bewerk profiel</A></LI>
<LI><A HREF="#">Privberichten</A></LI>
<LI><A HREF="?action=instellingen">Instellingen</A></LI>
</UL>
<?php endif; ?>
</LI>
</html>
ps: waarom html tags in hoofdletters? dat doen we toch al 10 jaar in kleine?
Toevoeging op 29/11/2013 15:09:09:
ps2: rangen volgt meestal de redenering dat iemand met een hogere rang meer mag zien.
Maar in de praktijk is dat vaak niet zo:
gewone medewerker mag 5 items zien.
medewerker van de boekhouding mag ook financien zien
maar medewerker van hr mag naast de 5 items ook de dingen van personeelszaken in, maar zeker niet in de boekhouding kijken.
en zo iets geldt ook vaak voor websites.
Dat is een gewoonte geworden. :') Vorig jaar moesten we de html tags altijd in hoofdletters typen. Vraag me niet waarom, want dat moesten we gewoon op school. ^^
http://www.pfz.nl/forum/topic/10202-onzichtbare-menu-items/ ook wat tips geven.
Hoeveel kennis heb je van html, css en php (/mysql)?
Lijkt er op dat ze op Hoeveel kennis heb je van html, css en php (/mysql)?
De session_start(); ontbrak in het index.php bestand. Ik dacht dat ik die daar al had aangeroepen, maar blijkbaar niet.
Eigenlijk heel weinig. Met html en css kan ik me wel nog behelpen, maar php en mysql gaat me wat moeilijker af. :')