Hallo iedereen,

Ik ben bezig met een klein project. En ik stoot op volgend probleem, waar ik maar die vanaf kom.
Dit is mijn script:

$config_query2 = mysql_query("SELECT * FROM user_config") or die ("<h1>Site down</h1>De site is momenteel niet beschikbaar");

while($config_row2 = mysql_fetch_object($config_query2)) {
$rights_adminpannel = array($config_row2->rights_adminpannel);
}


En dit heb ik staan op een beveiligede pagina

if(in_array($_SESSION['rights'], $rights_adminpannel))


In mijn database heb ik het volgende staan:
8, 9


Dit wil zeggen dat mensen met een ulevel recht van 8 of 9 alleen die pagina's moeten kunnen zien. Spijtig genoeg werkt dit alleen als ik slechts 1 getal in mijn database heb staan.

Wat doe ik fout?

Groet,
Glenn
kijk eens wat er precies in beide staat:
<?PHP
echo '<pre>';
echo var_dump($_SESSION['rights']);
echo '</pre>';
?>
en
<?PHP
echo '<pre>';
echo var_dump($rights_adminpannel);
echo '</pre>';
?>

hier is een klein voorbeeldje (hoe hij ook op php.net staat (bijna dan :P ))
<?PHP
$os = array("Mac", "XP", "DOS", "NOVEL");
if ( in_array("DOS", $os) ):
echo "Got DOS";
endif;
?>
Ipv rang 8 en 9 kan je ook zeggen dat de minimale rang 8 is.
9 is het hoogst, 1 het laagst.
Met een WHERE user_rang >= needed_rang kom je dan een heel eind.
@Marco dit staat er in mijn array als ik dat doe:
<?php
array(1) { [0]=> string(4) "1, 9" }
?>
Dus dat klopt al niet.
In mijn $_SESSION['rights'] staat gewoon mijn ulevel. Bij mij nu dus 9

@Eddy, dat zou handig zijn als ik opeenvolgende userlevels zou kunnen gebruiken. Het is de bedoeling dat ik alle combinaties kan maken ;)
$rights_adminpannel = array($config_row2->rights_adminpannel);

Hiermee maak je een array() met één record/waarde.
De waarde uit de database zelf is géén array().
- SanThe - op 18/08/2012 09:49:24

$rights_adminpannel = array($config_row2->rights_adminpannel);

Hiermee maak je een array() met één record/waarde.
De waarde uit de database zelf is géén array().


Ik heb toch meerdere waardes in mijn db staan?
Heb je 1 veld met 2 cijfers of 2 velden met elk 1 cijfer?

Als ik kijk naar je post op 18/08/2012 09:41:23 lijkt het mij dat de array maar 1 waarde heeft.
Obelix en Idefix op 18/08/2012 11:48:03

Heb je 1 veld met 2 cijfers of 2 velden met elk 1 cijfer?

Als ik kijk naar je post op 18/08/2012 09:41:23 lijkt het mij dat de array maar 1 waarde heeft.


Wel dat is juist het probleem :p

Ik heb gewoon de waarde van een array in een db gezet. Maar dat doet hij het niet correct. Hij zou de waarden 1 en 9 in die array moeten zetten :)
En wat als je 1 en 9 apart in een databaseveld zet (2 records dus) en niet in 1 veld.

off topic: het volledig quoten van een reactie (zeker als die er direct bovenstaat) is niet nodig/heeft geen toegevoegde waarde :-)
Query aanpassen naar zoiets als

"SELECT * FROM user_config where rights_adminpannel IN (8,9)"

Reageren