Hoe kan dit nouw makkelijker ??
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
28
29
30
31
32
33
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
28
29
30
31
32
33
<?php
//Create a query for getting all menu thing out of the database for normal users
$query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`='1' ");
echo"<p>Guest:</p>";
while($obj = mysql_fetch_object($query)){
$link = $obj->link;
$linkname = $obj->naam;
echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
}
//Do the same for registered users
if($userlevel >= 2){
$query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`='2' ");
echo"<p>User:</p>";
while($obj = mysql_fetch_object($query)){
$link = $obj->link;
$linkname = $obj->naam;
echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
}
}
//Do the same for the admin
if($userlevel = 3){
$query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`='3' ");
echo"<p>Admin:</p>";
while($obj = mysql_fetch_object($query)){
$link = $obj->link;
$linkname = $obj->naam;
echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
}
}
?>
//Create a query for getting all menu thing out of the database for normal users
$query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`='1' ");
echo"<p>Guest:</p>";
while($obj = mysql_fetch_object($query)){
$link = $obj->link;
$linkname = $obj->naam;
echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
}
//Do the same for registered users
if($userlevel >= 2){
$query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`='2' ");
echo"<p>User:</p>";
while($obj = mysql_fetch_object($query)){
$link = $obj->link;
$linkname = $obj->naam;
echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
}
}
//Do the same for the admin
if($userlevel = 3){
$query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`='3' ");
echo"<p>Admin:</p>";
while($obj = mysql_fetch_object($query)){
$link = $obj->link;
$linkname = $obj->naam;
echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Verwijder Account
Je zou het iets 'overzichtelijker' / 'neter' kunnen maken als je bijvoorbeeld een switch zou gebruiken...
Ook kun je alles in 1 if neerzetten. gewoon de qery uitvoeren waar auth level == $userlevel
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
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
<?php
$userlevel = ; //hier even invullen waar userlevel vandaan komt
$qMenu = "SELECT link, naam FROM menu WHERE auth_level = ".mysql_real_escape_string($userlevel).";";
$rMenu = mysql_query($qMenu);
if(!$rMenu)
{
trigger_error(mysql_error());
}
else
{
switch($userlevel)
{
case 1: echo '<p>Guest</p>'; break;
case 2: echo '<p>User</p>'; break;
case 3: echo '<p>Admin</p>'; break;
default: echo '<p>Guest</p>'; break;
}
while($aMenu = mysql_fetch_assoc($rMenu))
{
echo '<a href="?op='.$rMenu['link'].'">'.$rMenu['naam'].'</a><br />';
}
}
?>
$userlevel = ; //hier even invullen waar userlevel vandaan komt
$qMenu = "SELECT link, naam FROM menu WHERE auth_level = ".mysql_real_escape_string($userlevel).";";
$rMenu = mysql_query($qMenu);
if(!$rMenu)
{
trigger_error(mysql_error());
}
else
{
switch($userlevel)
{
case 1: echo '<p>Guest</p>'; break;
case 2: echo '<p>User</p>'; break;
case 3: echo '<p>Admin</p>'; break;
default: echo '<p>Guest</p>'; break;
}
while($aMenu = mysql_fetch_assoc($rMenu))
{
echo '<a href="?op='.$rMenu['link'].'">'.$rMenu['naam'].'</a><br />';
}
}
?>
Heel mooi scripit... maar... ik wil dat iemand van 2 ook links van 1 kan zien. en van 3 ook van 1 en 2
Jens
EDIT:
zo dus ;)
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
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
<?php
$userlevel = ; //hier even invullen waar userlevel vandaan komt
$qMenu = "SELECT link, naam FROM menu WHERE auth_level <= ".mysql_real_escape_string($userlevel).";";
$rMenu = mysql_query($qMenu);
if(!$rMenu)
{
trigger_error(mysql_error());
}
else
{
switch($userlevel)
{
case 1: echo '<p>Guest</p>'; break;
case 2: echo '<p>User</p>'; break;
case 3: echo '<p>Admin</p>'; break;
default: echo '<p>Guest</p>'; break;
}
while($aMenu = mysql_fetch_assoc($rMenu))
{
echo '<a href="?op='.$rMenu['link'].'">'.$rMenu['naam'].'</a><br />';
}
}
?>
$userlevel = ; //hier even invullen waar userlevel vandaan komt
$qMenu = "SELECT link, naam FROM menu WHERE auth_level <= ".mysql_real_escape_string($userlevel).";";
$rMenu = mysql_query($qMenu);
if(!$rMenu)
{
trigger_error(mysql_error());
}
else
{
switch($userlevel)
{
case 1: echo '<p>Guest</p>'; break;
case 2: echo '<p>User</p>'; break;
case 3: echo '<p>Admin</p>'; break;
default: echo '<p>Guest</p>'; break;
}
while($aMenu = mysql_fetch_assoc($rMenu))
{
echo '<a href="?op='.$rMenu['link'].'">'.$rMenu['naam'].'</a><br />';
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jens V
Dat werkt dus niet hea :P dan haal je alleen uit de DB als het kleiner is dan... het heeft te maken met de case... maar volgensmij kan <= niet bij 1 2 of 3.. ff probere
Zorg dat de linkjes van 1 en de linkjes van 2 en de linkjes van 3 worden geretourneerd door die query in geval $userlevel=3.
tim lijster schreef op 15.03.2009 16:54:
Dat werkt dus niet hea :P dan haal je alleen uit de DB als het kleiner is dan... het heeft te maken met de case... maar volgensmij kan <= niet bij 1 2 of 3.. ff probere
kleiner dan of gelijk aan kan prima bij nummers
Klaasjan Boven schreef op 15.03.2009 19:12:
kleiner dan of gelijk aan kan prima bij nummers
Kan het ook bij iets anders dan nummers (integers)? :/tim lijster schreef op 15.03.2009 16:54:
Dat werkt dus niet hea :P dan haal je alleen uit de DB als het kleiner is dan... het heeft te maken met de case... maar volgensmij kan <= niet bij 1 2 of 3.. ff probere
kleiner dan of gelijk aan kan prima bij nummers
Edit:
Ja, dat kan dus. Vraag me wel af of het nuttig is (met name bij objecten en array's)?
Gewijzigd op 01/01/1970 01:00:00 door Winston Smith
mr. Kasper schreef op 15.03.2009 20:27:
Kan het ook bij iets anders dan nummers (integers)? :/
Vast wel.
In php in ieder geval wel:
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
a is bijv kleiner dan A en a is kleiner dan b ik zou er echter zo min mogelijk gebruik van maken. Ik doelde op het feit dat TS zijn waarden wel op moet slaan als INTEGERS ipv VARCHAR
Klaasjan Boven schreef op 15.03.2009 21:23:
Ik geloof dat ieder teken een waarde heeft voor php,
Dat noemen ze nou ASCII-waarden
A = 65
a = 97
b = 98
Klaasjan Boven schreef op 15.03.2009 21:23:
Ik doelde op het feit dat TS zijn waarden wel op moet slaan als INTEGERS ipv VARCHAR
Correct.
SanThe schreef op 15.03.2009 21:45:
Dat noemen ze nou ASCII-waarden
A = 65
a = 97
b = 98
Correct.
Klaasjan Boven schreef op 15.03.2009 21:23:
Ik geloof dat ieder teken een waarde heeft voor php,
Dat noemen ze nou ASCII-waarden
A = 65
a = 97
b = 98
Klaasjan Boven schreef op 15.03.2009 21:23:
Ik doelde op het feit dat TS zijn waarden wel op moet slaan als INTEGERS ipv VARCHAR
Correct.
Droogjes, maar volledig correct... :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
//Create a query for getting all menu thing out of the database for normal users
$query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`<='$userlevel' ");
$query2 = mysql_query("SELECT * FROM `userlevel` WHERE `level`='$userlevel'");
$rij = mysql_fetch_object($query2);
echo $rij->discription . "<br />";
while($obj = mysql_fetch_object($query)){
$link = $obj->link;
$linkname = $obj->naam;
echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
}
?>
//Create a query for getting all menu thing out of the database for normal users
$query = mysql_query("SELECT * FROM `menu` WHERE `auth_level`<='$userlevel' ");
$query2 = mysql_query("SELECT * FROM `userlevel` WHERE `level`='$userlevel'");
$rij = mysql_fetch_object($query2);
echo $rij->discription . "<br />";
while($obj = mysql_fetch_object($query)){
$link = $obj->link;
$linkname = $obj->naam;
echo" <a href=\"?op=" . $link . "\">" . $linkname . "</a><br /> ";
}
?>
Dit is de correcte code (: Me leraar webdesign heeft me ff geholpe xD niewe tabel aangemaakt met Guest, User en Admin...
Vraag ook eens aan die leraar waar hij de foutafhandeling heeft verstopt. Ik zie het niet namelijk. :)
Die ene die eigenlijk altijd aanwezig moet zijn.
En foutafhandeling die in het script van citroen wél keurig ingebouwd is.
Ik zou zelf niet zo snel mysql_errors tonen maar gewoon een simpele "Kan de query niet uitvoeren .... ". MySQL foutmeldingen kunnen ook bruikbaar zijn voor potentiële hackers.