[MySQL][PHP]Problem przy zalogowanej osobie, Odświeżanie wyrzuca mnie do formularza logowania |
[MySQL][PHP]Problem przy zalogowanej osobie, Odświeżanie wyrzuca mnie do formularza logowania |
11.08.2019, 17:09:57
Post
#1
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) |
Cześć,
Mam trochę nietypowy problem - chociaż nie wiem do końca, co jest NIE TAK - Coś nie działa. Więc tak: serwis na pierwszy rzut oka działa OK - loguje się przez login i hasło..., chociaż nie rozpoznaje RÓL, reszta danych zapisanych w sesji działa, wyświetlając potrzebne dane. ALE: gdy chcę odświeżyć stronę [np. przez F5 lub Enter w pasku adresu] bądź przejść z innej strony na tą, gdzie są dane zalogowanej osoby, wywala mi Pustą stronę lub formularz logowania. Oto mój kod - wiem, że jest jeszcze nie dopracowany, ale przedstawiam go w takim stanie w jakim go sam testuję:
Prośba o pomoc. A Ten post edytował andrzejlechniak 11.08.2019, 17:36:20 |
|
|
12.08.2019, 04:26:54
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 836 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
|
|
|
12.08.2019, 06:23:49
Post
#3
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Jesli masz dwie opcje 1 i 0 to musisz je przypisac do sesji w zaleznosci kto sie loguje. Czyli pobierasz dane z bazy (rozumiem ze $role trzymasz w bazie?)
-------------------- |
|
|
12.08.2019, 07:17:54
Post
#4
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) |
Zrobiłem jak poradziliście mi.
Nadal myli mi role - rzeczy dla admina wyświetla jak dla usera. Dla usera też jak dla usera.
W mojej bazie danych mam ustawione 0 dla usera i 1 dla admina. I wciąż mi w skrypcie myli. |
|
|
12.08.2019, 07:23:44
Post
#5
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Jaka nazwe w bazie ma kolumna na role
-------------------- |
|
|
12.08.2019, 07:30:36
Post
#6
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) |
mam tabele logowanie, w niej tabela role (tinyINT).
|
|
|
12.08.2019, 07:33:17
Post
#7
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
mam tabele logowanie, w niej tabela role (tinyINT). Chodzi mi o nazwe kolumny gdzie sa 1 lub 0. Nie nazwa tabeli Edit Ok rozumiem ze to jest nazwa 'role' Ten post edytował dublinka 12.08.2019, 07:34:19 -------------------- |
|
|
12.08.2019, 07:43:24
Post
#8
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) |
TAK
|
|
|
12.08.2019, 07:49:10
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Podajesz coś takiego:
Skąd w tym kodzie bierze się zmienna $role? -------------------- |
|
|
12.08.2019, 07:49:52
Post
#10
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Rejestrowac sesje masz w konkretnych warunkach.
If($row['role']==0) { $_SESSSION['rola'] = $row['role']; } elseif(...) )else{ ... } Teraz warunek do odczytu If($_SESSSION['rola'] == 0) { echo 'zalogowany jako: admin'; } If($_SESSSION['rola'] == 1) { echo 'zalogowany jako: USER'; } pisze z tel nie mam dostepu do kompa teraz jsk cos to potem dpowiem -------------------- |
|
|
12.08.2019, 07:55:31
Post
#11
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 2 Dołączył: 5.08.2019 Ostrzeżenie: (10%) |
Brak deklaracji $role. Natomiast $row['role'] możesz użyć dopiero w pętli while
Ten post edytował nospor 3.01.2024, 16:06:39 |
|
|
12.08.2019, 08:09:26
Post
#12
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Brak deklaracji $role. Natomiast $row['role'] $role z kosmosu sie wzielo ale jiz to pomijam. Jesli chodzi o tablice $row to domyslam sie ze autor o tym wie. Mam nadzieje. -------------------- |
|
|
12.08.2019, 08:29:12
Post
#13
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) |
Czy zatem zmienna $role powinna być zadeklarowana w sesji [w strefie zastrzeżonej] czy przy przekazywaniu przez formularz logowania?
|
|
|
12.08.2019, 08:34:24
Post
#14
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Czy zatem zmienna $role powinna być zadeklarowana w sesji [w strefie zastrzeżonej] czy przy przekazywaniu przez formularz logowania? Najpierw trzeba sobie zadac pytnaie czym jest ta zmienna bo Ty ja tam przypisujesz ale brak jest deklaracji (nie ma wartosci) -------------------- |
|
|
12.08.2019, 08:36:27
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Rola powinna być odczytana z bazy i po poprawnym potwierdzeniu użytkownika dopisana do sesji. Dobrze jest stosowac enumeratory do takich rzeczy wtedy się nie zastanawiasz czy 0 to gość czy coś innego. Kolejna rzecz to dlaczego trzymasz hasło jako tekst? password_hash i password_verify.
-------------------- |
|
|
12.08.2019, 08:54:16
Post
#16
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) |
Dobra.
1. Przesyłam przez formularz dane: login i hasło. 2. Odbieram dane --> jeśli są wpisane i zgodne, przechodzę do strefy dla zalogowanych. Tutaj w sesji przekazuję login i hasło. Jeśli przekazywane dane są złe, dostaję błąd. 3. Wszystkie dane są zapisane w bazie danych. Przy logowaniu pobieram dane: login i hasło. I gdzieś tu się gubię, bo nie wiem jak wyciągnąć role z bazy danych, tak aby JUŻ logując się użytkownik miał dostęp TYLKO do części portalu: dla Usera - np. edytuj dane; dla Admina - np. usunięcie Usera. Role mają dwie wartości: 0 [dla Usera] i 1 [dla Admina]. 4. Gdzie przypisać dane - czy w formularzu przy logowaniu czy w miejscu, gdzie w sesji przekazuję dane z bazy -->
|
|
|
12.08.2019, 09:45:47
Post
#17
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Przeciez juz napisalem wczesniej.
Odczytujesz dane i w konkretnych miejscach rejestrujesz sesje Na razie jestem poza domem. Wroce to cos napisze. Bede za okolo 2-3h -------------------- |
|
|
12.08.2019, 10:09:47
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
2. Tutaj w sesji przekazuję login i hasło. - Po co chcesz zapisywać hasło w sesji? Nie jest do niczego potrzebne po zalogowaniu.
3. W jakiej postaci masz te role? relacja do innej tabeli czy samo pole roli?
Jakoś tak. Ten post edytował viking 12.08.2019, 10:22:14 -------------------- |
|
|
12.08.2019, 12:00:40
Post
#19
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 7.11.2008 Ostrzeżenie: (0%) |
Sprawdzam, sprawdzam i niestety nie działa. To znaczy - przekierowuj mnie od razu na błąd logowania.
I jest błąd w literówce: --> brakuje nawiasu domykającego. Sprawdzam jeszcze, więc może sam tu czegoś nie wychwytuję... ---------------------- Posprawdzałem jeszcze raz, pozmieniałem parę drobnostek i działa. Pozostaje to, o czym de facto pisałem na początku - odświeżanie strony. Czy można ten skrypt jakoś zabezpieczyć, aby odświeżając stronę trafiać na zablokowaną część? Ten post edytował andrzejlechniak 12.08.2019, 12:50:54 |
|
|
12.08.2019, 14:42:01
Post
#20
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Pozostaje to, o czym de facto pisałem na początku - odświeżanie strony. Czy można ten skrypt jakoś zabezpieczyć, aby odświeżając stronę trafiać na zablokowaną część? Warunek. Odpowiedni warunek w odpowiednim miejscu. Ten post edytował dublinka 12.08.2019, 14:44:01 -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 18:37 |