Avatar billede krydset Nybegynder
13. december 2003 - 17:49 Der er 4 kommentarer og
1 løsning

session skifter værdi

hejsa.

jeg er ved at udvikle en shop og har prøvet at lave nogle rettighede med sessions

når man logger ind som admin finder den brugern i db samt det felt der hedder rights i min db

når man så har lavet et korrekt login bliver        $_SESSION[rights] sat til enten 1, 2, 3
1. Fuld administrator
2. superbruger
3. normal bruger


Men til det egenlige problem $_SESSION[rights] skifter umiddelbart værdi. Hvis jeg logger på som en superbruger får $_SESSION[rights] først tildelt 2 men hvis jeg prøver at slette slette en bruger(kræver rights 3) bliver session[rights] sat til 3 og jeg fatter det simpelthen bare ikk

smider lidt kode her

trykker på det link her med rights 2
echo "<a href='?function=slet&id=$test[id]'>Slet</a> | ";

den smutter så herned og der bliver session[rights] sat til 3

if($_GET['function'] == "slet") {
    if($_SESSION[rights] = 3) {
        slet_bruger();
    } else {
        admin_rights();
       
    }}
er der nogen der kan give en forklaring på hvorfor den gør det
Avatar billede erikjacobsen Ekspert
13. december 2003 - 17:59 #1
if($_SESSION[rights] == 3) {
Avatar billede krydset Nybegynder
13. december 2003 - 18:16 #2
hold da op en lille fejl hva her er point :-D

og takker

du skal bare lægge et svar
Avatar billede Slettet bruger
14. december 2003 - 23:38 #3
Et tip til at undgå den slags fremover er at skrive således:

if("slet" == $_GET['function']) {
    if(3 == $_SESSION[rights]) {
        slet_bruger();
    } else {
        admin_rights();
     
    }}

Altså altid sætte konstanten til venstre. Så vil du få en parse error, hvis du glemmer et lighedstegn i stedet for en mystisk fejl, som kan være svær at finde.

Hvis du havde haft tallet (og teksten) i variable, er det lidt mere tricky, men det kan klares således:

$sletvariabel="slet";
$tretal=3;

if("$sletvariabel" == $_GET['function']) {
    if($tretal+0 == $_SESSION[rights]) {
        slet_bruger();
    } else {
        admin_rights();
     
    }}

Ideen er altså at sørge for, at venstresiden indeholder noget, der ikke kan tildeles en værdi.
Avatar billede krydset Nybegynder
05. januar 2004 - 10:33 #4
eftersom du ikke har lagt et svar nupper jeg selv point :-D
Avatar billede krydset Nybegynder
05. januar 2004 - 10:34 #5
point
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