Avatar billede Ekspertbruger Nybegynder
07. august 2011 - 17:36 Der er 7 kommentarer og
1 løsning

Bruger-rettigheder: fejl ved udvægelse af hvem der har rettigheder.

Hej eksperter.

Jeg er stødt ind i en fejl, som jeg ikke plejer at have problemer med.

Min kode ser sådan her ud:
$GET = mysql_query("SELECT user_level FROM users WHERE user_name='$_SESSION[user_name]'") or die(mysqlerror());

if($_SESSION['$GET'] > 10)


Ved koden sker der simpelthen ikke noget. Jeg kan ikke rigtigt se, hvad fejlen skulle være?

Nogen der kan hjælpe?

På forhånd tak for hjælpen :)
Avatar billede majbom Novice
07. august 2011 - 17:42 #1
du skriver ikke hvad problemet/fejlen er, men dether ser i hvert fald forkert ud:

($_SESSION['$GET']


der skal ikke ' rundt om variablen $GET
Avatar billede Ekspertbruger Nybegynder
07. august 2011 - 18:02 #2
Jeg skrev at der ikke skete noget - jeg mente dermed at, hvis en bruger med rang 1 prøver at komme til funktionen, vil brugeren få tilladelse, men det er selvfølgelig kun dem med rangen 10, som skal have tilladelse til det. :)

Super det er fjernet - de to '' kom efter at jeg har prøvet at lede efter fejlen :)

Problemet er at jeg ikke kan give jer, så meget at arbejde med.

Mon problemet er noget med session?
Avatar billede vagnk Juniormester
07. august 2011 - 18:27 #3
Jeg tror det er din where-clause
WHERE user_name='$_SESSION[user_name]'
den er gal med med. Jeg mener den evaluerer til helt præcist ingenting og den fanges ikke i en die() fordi statementet som sådan er korrekt.

Når man samler koden på den måde skal man have en smule check på sine quotes.
Avatar billede majbom Novice
07. august 2011 - 18:39 #4
ja, som vagnk siger, så prøbv lige at ændre din WHERE-clause til:

='" . $_SESSION['user_name'] . "'
Avatar billede Ekspertbruger Nybegynder
07. august 2011 - 19:52 #5
$get = mysql_query("SELECT user_level FROM users WHERE user_name='$_SESSION[user_name]'") or die(mysqlerror());
while ($row = mysql_fetch_assoc($get))
{
$rang = $row['user_level'];
}

echo $rang;
- siger den 10, hvilket min rang er - så noget må den vel evaluere?

Jeg ved ikke, hvad forskellen skulle være, hvis jeg rettede det, men  jeg prøver at se ad :)

Nu virker det - jeg tror ikke at det var min ='$_SESSION[user_name]', da det virker med min metode og jeres :)

Det virkede da jeg brugte:

$get = mysql_query("SELECT user_level FROM users WHERE user_name='$_SESSION[user_name]'") or die(mysqlerror());
while ($row = mysql_fetch_assoc($get))
{
$rang = $row['user_level'];
}

istedet for:
$GET = mysql_query("SELECT user_level FROM users WHERE user_name='$_SESSION[user_name]'") or die(mysqlerror());

if($_SESSION['$GET'] > 10)
Avatar billede Ekspertbruger Nybegynder
12. august 2011 - 18:16 #6
Nogen der vil have svar?
Avatar billede majbom Novice
12. august 2011 - 19:11 #7
jeg springer over :)
Avatar billede Ekspertbruger Nybegynder
15. august 2011 - 20:59 #8
svar så :P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester