[MySQL][PHP]Sesje w PHP - zapisywanie i pobieranie |
[MySQL][PHP]Sesje w PHP - zapisywanie i pobieranie |
2.01.2021, 13:24:48
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 2.01.2021 Ostrzeżenie: (0%) |
Cześć, tworzę aplikację mobilną w androdzie, połączona z bazą mysql, a skrypty połączenia/edycji/wyświetlania są po stronie serwera w PHP.
Potrzebuję w zakładce użytkowników wyświetlić obecnie zalogowanego użytkownika więc chyba najprościej zrobić to na zasadzie sesji. Utworzyłem sesję podczas logowania, wygląda to następująco:
Na początku kodu rozpocząłem **session_start();** i chce dodać id obecnie logowanego użytkownika więc zrobiłem **$_SESSION['id_user'] = $row['id'];** Po czym chce tego użytkownika wyświetlić w programie, dlatego korzystam z kodu:
W momencie, gdy po **WHERE** ustawiam ID na sztywno to wyświetla prawidłowo, jednak z sesji nie pobiera. Kody logowania i wyświetlania znajdują się w innych plikach, ale w tym samym folderze. Proszę o pomoc, gdzie robię błąd? |
|
|
2.01.2021, 13:38:11
Post
#2
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
Sprawdzales czy istnieje ta sesja i jaka ma wartosc?
-------------------- |
|
|
2.01.2021, 13:49:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Ale masz aplikację w javie która ma niby korzystać z sesji php? zapomnij o tym. Poczytaj o tokenach jwt.
-------------------- |
|
|
2.01.2021, 13:56:45
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 2.01.2021 Ostrzeżenie: (0%) |
|
|
|
2.01.2021, 13:59:20
Post
#5
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
-------------------- |
|
|
2.01.2021, 14:15:14
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 2.01.2021 Ostrzeżenie: (0%) |
Sypie błędem. Błąd jest taki sam za każdym razem. Ze względu na to, że ja mam kodowanie w jsonie po stronie androida to błąd mam praktycznie zawsze ten sam:
"Value of type java.lang.String cannot be converted to JSONArray" jednak po stronie JAVY na 100% jest wszystko prawidłowo. Podam w select id na sztywno - wszystko działa bez zarzutu. Nawet sypał, gdy miałem session_start(); w tym pliku na samym początku. Ale masz aplikację w javie która ma niby korzystać z sesji php? zapomnij o tym. Poczytaj o tokenach jwt. Aplikacja wyświetla to, co ja jej wyszukam przy pomocy PHP. Jeśli ja na sztywno przypisze ID w
To aplikacja bez problemu wyświetli mi dane użytkownika o id 69 więc aplikacja sama w sobie nie bierze udziału w sesjach. W momencie wejścia w zakładkę użytkownika, aplikacja wysyła żądanie do skryptu PHP i jest to w 100% sprawne, ale jak zrobić, by pobierał id z zalogowanego użytkownika? Logowanie też opiera się na PHP Ten post edytował Syene 2.01.2021, 14:17:22 |
|
|
2.01.2021, 14:19:58
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Sesja w php działa na zasadzie trzymania id w cookie lub przekazywania id sesji w adresie. W jaki sposób informujesz php ze strony javy że jest to konkretne id sesji?
-------------------- |
|
|
2.01.2021, 14:24:28
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 2.01.2021 Ostrzeżenie: (0%) |
Ze strony javy nie informuje w żaden sposób. Raczkuje w tym temacie dlatego 'w przedszkolu' napisałem
Sądziłem, że przy pomocy 'include login.php' umieszczonego w pliku PHP wyszukiwania on wie, że sesja z tamtego pliku ma zostać pobrana i że nie potrzebuje dodatkowych kodów w javie, skoro tam jest tylko wyświetlanie, a samo wysyłanie zapytania do bazy i sesje dzieją się w PHP Ten post edytował Syene 2.01.2021, 14:25:57 |
|
|
2.01.2021, 14:47:47
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Sesja musi być jakoś powiązana między klientami a php. Dlatego najczęściej używa się tokenów jwt lub innych bearer tokenów wysłanych z nagłówkami. W najprostszej postaci możesz po zalogowaniu wygenerować hash który sobie zapiszesz po stronie aplikacji.
-------------------- |
|
|
2.01.2021, 14:49:28
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) |
Nie wiem jak to robisz po stronie JAVY ale prawdopodobnie najłatwiejszą opcją będzie dodanie obsługi ciasteczek.
Możesz tez zrobić własną obsługę sesji https://www.php.net/manual/en/session.customhandler.php i uwierzytelniać się/identyfikować inną metodą niż ciasteczko. |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 23:36 |