Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak zrobić aby tylko jedna osoba miała dostęp do podstrony?
Forum PHP.pl > Forum > Przedszkole
JustHuman4
Witam. Jestem w trakcie tworzenia systemu newsów na swojej stronie. Chcę zrobić aby tylko osoba posiadająca status w bazie "admin" (nie wiem też jak zrobić takie statusy) miała dostęp do jakiegoś tam panelu z dodawaniem newsa czyli inputy itd.

Z góry dziękuję za każdą pomoc.

Pozdrawiam

///przepraszam za ten mega fail, wiem że zły dział ale już poprosiłem moderatora o przeniesienie :/
bzeebzee
w bazie danych do tabeli z użytkownikami dodajesz sobie pole np "role" w którym będą przechowywane role użytkowników. Następnie zanim news zostanie wyświetlony sprawdzasz czy zalogowany użytownik ma rolę "admin".

Mały przykład
  1. // dajmy na to, że małe info o zalogowanym użytkowniku przetrzymujesz w sesji
  2. if($_SESSION['role'] == 'admin') {
  3. // tutaj wyświetlanie news
  4. } else {
  5. // jeżeli nie jest adminem to np jest prziekierowanie do głównej strony
  6. header("Location: index.php");
  7. }
CuteOne
Przykład powyżej to oczywiście tylko przykład, który w praktyce nie ma prawa bytu:
1. Co jeżeli admin poza newsami ma widzieć inne elementy? Za każdym razem będziesz wstawiał ten warunek?
2. Co jeżeli za tydzień ktoś wpadnie na pomysł, że poza adminem newsy i kilka innych elementów mają widzieć operator, handlowiecX, moderatorY?
3. Co jeżeli za dwa tygodnie newsy i kilka innych elementów ma widzieć tylko moderatorY i operatorXYZ?

Rozumiesz do czego zmierzam? smile.gif Prawidłowo przed includem powinno się sprawdzić prawa dostępu do danego pliku(news.php) a nie do kawałka kodu w tymże pliku. Do takich celów powstały systemy autoryzacji

Pozdrawiam
JustHuman4
Więc jak to ma mniej więcej wyglądać? "Role" chyba już mogą normalnie być używane, tylko jakoś zmienić z tych sesji tak?

Pozdrawiam
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.