Autor | Zpráva | ||
---|---|---|---|
TanderZz Profil * |
#1 · Zasláno: 16. 10. 2011, 15:24:04
dobrý den mám menší problémek s právy v databázi a následném vypisování... mám nastaveno že obyčejný uživatel má práva 0 a admin má práva 1 ... ale i když v db nastavím práva 1 tak stejně mi to stejně vypisuje jenom možnosti pro obyčejného uživatele ... zde je kod:
<?php if(isset($_SESSION['prihlasen']) && $_SESSION['prihlasen'] == 1) { switch((int) $_GET['prava']) { case 0: echo '<ul class="sidemenu"> <li><a href="profil.php">Upravit profil</a></li> <li><a href="logout.php?logout=yes">Odhlásit se</a></li> </ul>'; break; case 1: echo '<ul class="sidemenu"> <li><a href="profil.php">Upravit profil</a></li> <li><a href="novinky.php">Novinky</a></li> <li><a href="akce.php">Akce</a></li> <li><a href="textova_reklama.php">Textová reklama</a></li> <li><a href="graficka_reklama.php">Grafická reklama</a></li> <li><a href="sprava_uzivatelu.php">Správa uživatelů</a></li> <li><a href="logout.php?logout=yes">Odhlásit se</a></li> </ul>'; break; } } else echo '<ul class="sidemenu"> <li><a href="prihlaseni.php">Přihlášení</a></li> <li><a href="registrace.php">Registrace</a></li> <li><a href="zapomenute_heslo.php">Zapomenuté heslo</a></li> </ul>'; ?> je tam chyba? jak to mam opravit ? :))) děkuji |
||
bukaJ Profil |
#2 · Zasláno: 16. 10. 2011, 15:33:21
Hm a proč používáš $_GET? Nemá náhodou ta hodnota 'prava' být uložena v Session, nebo v databázi.
Myslím, že chyba je v tom zdroji proměnné 'prava'. Asi by tam mělo být: ... switch((int) $_SESSION['prava']) { ... |
||
TanderZz Profil * |
#3 · Zasláno: 16. 10. 2011, 15:40:21
díky ale tohle nějak nepomohlo je to pořád to samé ... :/
|
||
bukaJ Profil |
#4 · Zasláno: 16. 10. 2011, 15:46:00
No dobře a kde je teda ta proměnná 'prava' uložená? Když tu hodnotu načteš z databáze, kam ji uložíš? Do Session, nebo kam?
|
||
TanderZz Profil * |
#5 · Zasláno: 16. 10. 2011, 15:47:49
Do sessions :)) ale možná je chyba v databázi .. :/ když mam u 'prava' UNSIGNED je to spravne ? :/
|
||
bukaJ Profil |
#6 · Zasláno: 16. 10. 2011, 15:50:02
Unsigned znamená, že se nemůže uložit záporné číslo. To nemá vliv.
Dobře, před začátkem výše uvedeného kódu zavolej <?php var_dump($_SESSION); ?> a zjisti, jestli se to opravdu do Sessions uložilo. |
||
TanderZz Profil * |
#7 · Zasláno: 16. 10. 2011, 15:53:38
vypisuje mi to tohle: array(0) { } když nejsem přihlášenej a tohle: array(6) { ["prihlasen"]=> int(1) ["login"]=> string(8) "TanderZz" ["UserId"]=> string(1) "1" ["UserWeb"]=> string(28) "http://topinka-registrace.cz" ["UserMail"]=> string(17) "TanderZz@email.cz" ["Prava"]=> string(1) "1" } když jsem přihlášenej ...
|
||
bukaJ Profil |
#8 · Zasláno: 16. 10. 2011, 15:58:45
No jasněěěěě! Indexy v poli jsou case-sensitive - to znamená, že když tam máš $_SESSION['Prava'], tak nemůžeš číst $_SESSION['prava']. Takže funkční řešení:
... switch((int) $_SESSION['Prava']) { ... |
||
TanderZz Profil * |
#9 · Zasláno: 16. 10. 2011, 16:00:49
juhůůůůůůůůůů díky moc :)))) funguje jak má ..
|
||
Časová prodleva: 13 let
|
0