Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: instrukcje warunkowe
Forum PHP.pl > Forum > Przedszkole
Apo
Witam
Niedawno zaczełem pisać swojego niewielkiego cms-a i natknąłem się na problem.
Po zalowananiu są ustawiane sesje z poziomomem użytkownika na stronie. Po zalogowaniu kod sprawdza mi czy jest zalagowany administrator lub moderator blokuje lub nie blokuje zotępu do różnych stron.
Sprawdzam to tak:

  1. <?php
  2. if(logowanie() == false || $_SESSION['poziom'] != 'moderator' || $_SESSION['poziom'] != 'administrator')
  3. {
  4. msg('Nie masz tu dostępu' );
  5. }
  6. else
  7. {
  8. /////jeśli moderator lub admin to sie coś wyświtla
  9. }
  10. ?>


No i mam to źle napisane bo gdy wchodzi moderator to pisze że ne mam dostępu.
Ta linijka jest źle:
  1. <?php
  2. if(logowanie() == false || $_SESSION['poziom'] != 'moderator' || $_SESSION['poziom'] != 'administrator')
  3. ?>


Bo nie wiem jak to moge poprawnie sprawdzić. Najpierw czy funkcja logowanie zwróci false czy true a potem czy jest zalogowany administrator czy moderator.
ps Chce żeby to było tylko w 1 if-ie :?
sobstel
  1. <?php
  2. if (logowanie() == false || ($_SESSION['poziom'] != 'moderator' && $_SESSION['poziom'] != 'administrator'))
  3. ?>
DavidPL
  1. <?php
  2.  
  3. if(logowanie() == false || ($_SESSION['poziom'] != 'moderator' && $_SESSION['poziom'] != 'administrator'))
  4.  
  5. ?>


Jeśli chodzi Ci o to żeby dostęp był zabroniony dla tych którzy nie są zalogowani a także dla tych którzy są zalogowani ale nie są moderatorami lub administratorami.

Warto nauczyć się porządnie podstaw logiki bo bez tego w tym fachu ani rusz...

--
Dawid Szałęga
Apo
thx za odpowiedzi. Ale został mi jeszcze jeden podobny problem. Mam taki skrypt wyświetlania wszystkich użytkowników i ich edycji itd w panelu administacyjnym oto kod:

  1. <?php
  2. switch($_GET['dzial']) {
  3. case 'users':
  4.  
  5. if(logowanie() == false || $_SESSION['poziom'] != 'administrator') { msg('Nie masz tu dostępu' ); } else {
  6.  
  7. $users = show( $users_db, $users );
  8. $users = unserialize($users);
  9.  
  10. if(isset($_GET['user']))
  11. {
  12. $user = htmlspecialchars($_GET['user']);
  13.  
  14. if($_GET['action'] == 'ok')
  15. {
  16. $nick = htmlspecialchars(trim($_POST['nick']));
  17. $email = htmlspecialchars(trim($_POST['email']));
  18.  
  19. $users[$user]['nick'] = $nick;
  20. $users[$user]['email'] = $email;
  21.  
  22. $users = serialize($users);
  23. add( $users_db, $users );
  24. echo 'ok';
  25. }
  26. else
  27. {
  28. echo '
  29. <form action="index.php?id=admin_panel&dzial=users&user='.$user.'&action=ok" method="post">
  30. login <input type="text" name="nick" value="'.$users[$user]['nick'].'" /><br />
  31. email <input type="text" name="email" value="'.$users[$user]['email'].'" /><br />
  32. <input type="submit" value="Zapisz zmiany" />
  33. </form>'; //itd
  34. }
  35. }
  36. else
  37. {
  38. for($i=0; $i<count($users);$i++) {
  39. echo '
  40. <a href="index.php?id=admin_panel&dzial=users&user='.$i.'">'.$users[$i]['nick'].'</a> || '.$users[$i]['create'];
  41. }
  42. }
  43. }
  44. break;
  45.  
  46. default:
  47. ////tu jest menu wyboru
  48. }
  49. ?>

No i teraz gdy wchodze na swój profil gdzie jestem administratorem to wszystko jest ok moge edytować dane, ale gdy wchodze na profil zwykłego użytkownika i chce mu edytować dane to wyskakuje 'Nie masz dostępu'
Bardzo prosze o pomoc bo nie wiem co już mam z tym zrobić :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.