![]() |
![]() |
![]()
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]:
|
|
|
![]()
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 (IMG:style_emoticons/default/smile.gif) Minus: zmiana typu konta user/admin wpłynie na użytkownika dopiero po jego przelogowaniu (choć da się to obejść) (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
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 (IMG:style_emoticons/default/smile.gif) Mam id każdego użytkownika jako autoincrement jeśli o to Ci chodzi, tylko nie wiem jak miał bym identyfikować go po ID? wyciągać dane usera i jego id i jako zmienną dawać samo id zamaist jego nazwy, czy loginu? I jeszcze mam pytanie bo nie wiem, czy dobrze Cię zrozumiałem. I chyba nie wiem dokładnie co masz na myśli mówiąc o wielu zmiennych sesyjnych.
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: 15.09.2025 - 02:24 |