Autor Zpráva
TanderZz
Profil *
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
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 *
díky ale tohle nějak nepomohlo je to pořád to samé ... :/
bukaJ
Profil
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 *
Do sessions :)) ale možná je chyba v databázi .. :/ když mam u 'prava' UNSIGNED je to spravne ? :/
bukaJ
Profil
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 *
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
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 *
juhůůůůůůůůůů díky moc :)))) funguje jak má ..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0