![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 3.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Czy ktoś mógłby mi polecić tutorial lub kurs lub cokolwiek odnośnie personalizacji strony w php? Chodzi o to, że muszę wprowadzić na stronę dwie kategorie użytkowników z różnymi prawami (jedni mogą zobaczyć więcej inni mniej) i nie bardzo wiem jak się do tego zabrać. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
temat jest zlozony jesli by wdawac sie w szczegoly...
jednym z rozwiazan jest ACL gotowych rozwiazan jest naprawde sporo... poguglaj, a znajdziesz sporo odnosnikow. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 195 Pomógł: 18 Dołączył: 7.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak na szybko:
- Dodajesz w tabeli koejne pole: uprawnienia; - Uprawnienia to są: 0,1,2,3 i ile tam chcesz; - Opcjonalnie w innej tabeli możesz sobie je jakoś ponazywać (relacje); - A póżniej przy logowaniu dodajesz do sesji numer uprawnienia - if ($_SESSION['upr'] === 0) { root } elseif ($upr === 1) { Admin } else { Zwykły user } |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 3.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
poproszę o sprawdzenie kodu, który de facto nie działa:/
chodzi w nim o to, że po zalogowaniu (logowanie działa) użytkownik po kliknięciu w stronę członkowską jest przekierowany tutaj, w zależności od jego praw dostępu jest mu wyświetlana lista miejscowości lub nie, problem w tym, że za każdym razem pokazuje "brak praw dostępu" (komunikat który ustawiłem dla praw <>0) CODE <?php session_start(); echo '<h1>Część członkowska</h1>'; if(isset($_SESSION['prawa'])) { echo '<p>Użytkownik zalogowany jako '.$_SESSION['prawa'].'</p>'; echo '<p>Oto zawartość dostępna tylko dla członków</p>'; if ($_SESSION['prawa'] === 0) { @ $db = new mysqli('localhost', 'root', 'root', 'trwale_test'); if (mysqli_connect_errno()) { echo 'Blad w polaczeniu'; exit; } $db->query("SET NAMES 'utf8'"); $db->query("SET collation_connection = utf8_polish_ci;"); $zapytanie = "SELECT nazwa FROM miejscowosci"; $wynik = $db->query($zapytanie); echo "<select name=Miejscowosc value=''"; while($nt=mysqli_fetch_array($wynik)) { echo "<option value=$nt[nazwa]>$nt[nazwa]</option>"; } echo "</select>"; echo '<form action="...">'; } else { echo 'Brak praw dostepu'; } } else { echo '<p>Użytkownik niezalogowany.</p>'; echo '<p>Tylko zalogowani użytkownicy mogą oglądać tę stronę.</p>'; } echo '<a href="uwierz_glowny.php">Powrót do strony głównej</a>'; ?> dodatkowo pytanie: ile może być zmiennych sesyjnych, jak je ustawiać i odwoływać się do nich? oraz jak zrobić, żeby po zalogowaniu strona automatycznie przekierowywała na stronę członkowską? Ten post edytował gawellus 7.07.2009, 10:37:37 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 6.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm.. Ja bym to zrobił tak że:
Pobierasz z bazy danych uprawnienia usera. Switch(uprawnienia) case include(tresc_dla_danych_uprawnien) itd. Później w tych plikach z treścią jeszcze raz sprawdzić uprawnienia (if uprawnienia == X { treść strony} else { komunikat o potrzebie zalogowania } Jak zrozumiesz to może będzie to lepsze rozwiązanie. PS Nie karcić mnie, uczę się php od 2 dni...(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 78 Dołączył: 4.11.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
daj sobie var_dump($_SESSION) , żeby sprawdzić, co konkretnie masz w sesji. Dałeś sobie operator '===', który sprawdza, czy wyrażenia są równe tożsamościowo - czyli dokładnie liczbie zero. Być może w sesji masz null, false, '' czy jeszcze cos podobnego
poza tym lepiej unikać nadawania ważnym zmiennym wartości '0', lepiej zarezerwować ją dla 'brak dostępu', żeby później nie było problemów z brakiem zmiennej, braku jej wartości, wartości pustej itp. co do sesji to najlepiej zrób tak: $sess = 'jakis tam tekst'; $_SESSION[$sess]['twojaZmienna'] = $twojaZmienna; $sessid powinienes sobie zmieniac przy kazdym projekcie - wtedy, przy pracy z kilkoma projektami na raz gdy powtórzą ci się nazwy zmiennych - nie będą się gryzły a przekierować stronę możesz tak: header('Location: http://www.example.com/'); Ten post edytował zordon 7.07.2009, 12:03:43 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 22:30 |