![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam system logowania, gdzie w bazie dorobiłem sobie pole admin = tinyint 1/0 i teraz robię sobie wyświetlanie pewnych elementów menu dla zalogowanych użytkowników z admin = 1 i mam takie coś
Na początku includuję bazę i pobieram wartość mnie interesującą czyli admin
i teraz kod odpowiedzialny za weryfikację gdzie korzystam z "czy zalogowany" i "czy admin=1"
nie wiem, czy dokładnie dobrze sobie to obmyśliłem. Bo inni użytkownicy bez admin=1 widzą to pole w menu ;/ Przypuszczalnie źle sobie warunek wypisałem, czy też pole "admin" w mysql może być zarezerwowane i nie widzi? Ten post edytował adek- 24.10.2011, 14:07:32 |
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Nie sprawdzasz wartości w polu 'admin', tylko ilość zwróconych wyników.
Dlatego, jeśli w bazie masz jeden wiersz z polem 'admin' ustawionym na 1, ten warunek będzie zawsze spełniony. Proponuję ci doczytać o obsłudze zapytań i zwracanych wynikach (ogólnie o f-cjach z rodziny mysql_...() )
Powód edycji: [blooregard]:
-------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dopowiem jedynie, że takie rzeczy w prostych aplikacjach najlepiej przerzucić do sesji.
Na przykład najprostrzym możliwym sposobem zalogowania użytkownika jest podpisanie do sesji ID zalogowanego użytkownika. Tak samo można dorzucić jeszcze po zalogowaniu czy dany user jest adminem czy nie (to i tak jedno zapytanie). Następnie wszędzie na stronie masz dostep do sesji i nie musisz już czytać z bazy czy dany uzytkownik jest adminem czy nie ![]() Minus: zmiana typu konta user/admin wpłynie na użytkownika dopiero po jego przelogowaniu (choć da się to obejść) ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
blooregard faktycznie, skopiowałem po prostu część kodu i wkleiłem bezmyślnie. Tak szukałem nawet informacji odnośnie sprawdzania czy user jest adminem itp i dałem sobie warunek który i tak mi nie działał, ale dla własnej ciekawości muszę to ogarnąć więc będę szukał jeszcze informacji na ten temat, bo przez brak wiedzy nic konkretnego nie potrafiłem znaleźć
a co do wypowiedzi Sephirus to faktycznie, zacząłem się bawić i przy tworzeniu sesji użytkownika $_SESION['login']
dorobiłem sobie jeszcze raz takie coś tylko dodałem w mysql_query warunek and admin=1 i stworzyłem
i kod który ma być widoczny dla admina podaję tak
tylko jest jeden motyw, muszę zrobić buttona wylogowania osobno dla session admin i dla session login bo jeśli zrobię
to albo nie widzi go user, jeśli drugi isset bez ! to nie widzi go admin, nie rozwarstwiam się na razie nad tym bo muszę uciekać, postaram się znaleźć odpowiedni warunek jak wrócę z pracy Ten post edytował adek- 24.10.2011, 17:34:29 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 1 Dołączył: 24.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Troche to zagmatwane 0.o
Przecież możesz sobie zrobić wiele zmiennych sesyjnych... W miejscu gdzie user się loguje poprostu:
Tyle... Przecież admin jest też userem, nie? Pozatym, pozycje w bazie powinny mieć przydzielony ID, lepiej sobie pobierać te ID, niż lecieć po loginie usera... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
W zasadzie fakt admin też jest userem
![]() Ja sobie zrobiłem tak:
CHodzi Ci dokładnie o to, że można to zrobić w jednym zapytaniu, zamiast rozbijać na dwa? Czyli najpierw bym musiał jeszcze zrobić if mysql query addmin-1 i admin-0 ? Bo w zasadzie chyba teraz jak loguję się jako sesja "admin" to też mi się loguje jako wywołanie sesji "login", tak? Bo mi wyświetla 2 przyciski wyloguj dla admin i dla login... Ten post edytował adek- 25.10.2011, 20:39:02 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 08:42 |