Ali je avtor, ali admin, ali superadmin?

Pridejo dnevi, ko moji možgani pri dokaj preprostih "Logical Operators" ne delujejo tako kot ponavadi (razlog: ponedeljek in slabo vreme).

Enostavno ne morem narediti nekaj, kar bi dovolilo obiskovalcu, ki ni ne avtor posta ali lokalni admin ali superadmin, popravljati post. Tukaj preverja 3 različne faktorje.

Stavek gre nekako takole:

if ($userinfo['user_id'] != $user_id || $local_admin != 1 || $super_admin != 1) {
        exit;
    }

Se pravi če je userinfo (trenutno prijavljen id) == "enako kot userid posta" ali || je porabnik prijavljen kot lokalni administrator ali || je uporabnik superadmin

S predpostavko, da so $localadmin in $superadmin že določeni zgoraj (če je potem je variable = 1).

Need help please!!! ;)

(opozorite me prosim, če sem dal premalo podatkov)

4 odgovori

Znanje logike ti šepa :) Poglej si DeMorganov zakon, pa ti bo jasno, kaj si napisal narobe, na kratko:

(NOT A) OR (NOT B) OR (NOT C) = NOT (A AND B AND C)

Malo drugače zapisan logični izraz ti verjetno pove, kje si udaril mimo, kajne?

2

Ma ponavadi mi to res ne dela problem, zdj pa sm kar neki zatarokiral =)

Bi človek rekel, da ti dopust pomaga :D

Thx ;)

11

Pri takih težavah meni pomaga, da pravilno oblikujem stavek in ga povem na glas,
torej to:

ki ni ne avtor posta ali lokalni admin ali superadmi
bi postalo to:
če uporabnik ni avtor posta IN ni lokalni admin IN ni superadmin -> exit

Aja pa pri pravicah ali kakršnem koli preverjanju kredibilnosti ti svetujem, da vedno privzameš, da uporabnik nima pravice in potem iščeš ali obstaja kak razlog, da mu pravico dodeliš.

4