Leniobitz
16.01.2014, 13:31:58
Witajcie. Zastanawiam sie nad pewnym problemem: index.php wyświetla mi zawartość jakieś bazy danych w MySQL, jest lista firm identyfikowana prze ID_FIRM. Następnie po kliknięciu na wybraną firmę przenosimy się do firm.php - na tej stronie wyświetla mi się lista produktów, które są odnajdywanie na podstawie ID_FIRM. Z tego poziomu mozemy wejsc w poszczególne produkty albo dodać nowe. Za kazdym razem, ID_FIRM było ukryte i przesyłane w formularzu za pomocą POST. Jednakże po wejściu w dodawanie produktu, chce powrocić do firm.php i zobaczyc cala liste produktów - oczywiście mogę tą zmienną zapisać w sesji, obawiam się problemów, kiedy wrócę do index.php i wejdę w inną firmę - zmienna w sesji nadpisze sie?
Kshyhoo
16.01.2014, 13:34:39
O tablicach wielowymiarowych słyszał?
phpion
16.01.2014, 13:42:05
@Kshyhoo:
Jaki to ma związek?
@Leniobitz:
Musisz tą wartość przesyłać w każym formularzu, albo zapisać ją w sesji/ciachu, albo przesyłać ją w adresie jako GET.
Leniobitz
16.01.2014, 14:18:44
@Kshyhoo - nie jest tutaj problemem prezentacja danych i/lub ich przechowywanie, tylko przekazywanie identyfikatora firmy.
@phpion - wiem o tym, na razie wlasnie przesylalem za pomoca formularza. Zastanawiam sie nad uzyciem sesji, tylko co w przypadku, kiedy wchodze w jedna firme - do sesji dodaje się np. ID_FIRM o wartości 1, następnie wracam do index.php, wchodząc w kolejna firmę wtedy wartość ID_FIRM nadpisze sie?
Zastanwiałem się nad tym, żeby na początku index.php usuwać ta zmienna z sesji.. co o tym sądzicie? Możliwe ze moje rozwiązanie jest strasznie toporne, dlatego szukam czegoś wydajniejszego..
Kshyhoo
16.01.2014, 14:49:04
No właśnie. Można by tablicę:
$_SESSION['ID_FIRM']['ID_FIRM_z_bazy'] - gdzie ładujesz ID oglądanych firm, a przecież każda ma inny ID_FIRM. Żadna ID_FIRM się nie nadpisze, bo jest inna.
Leniobitz
16.01.2014, 14:59:21
Wybacz, ale chyba nie rozumiem twojego rozwiązania.. zalozmy ze wchodze w firme o ID_FIRM =1, a ID z bazy przyjmuje ta sama wartosc? wtedy mam $_SESSION['1']['1'] - Nie wiem jak by to mialo zmienic moja sytuacje... Możliwe, że czegoś nie załapałem w tym rozwiązaniu
Kshyhoo
16.01.2014, 15:15:42
Nie :
$_SESSION['1']['1']
ale:
$_SESSION['ID_FIRM']['1']
A to różnica...
Przeglądasz oferty i po jakimś czasie w sesji masz:
$_SESSION['ID_FIRM']['1']
$_SESSION['ID_FIRM']['5']
$_SESSION['ID_FIRM']['11']
$_SESSION['ID_FIRM']['21']
Zresztą, tak samo można skorzystać z ciasteczek.
Leniobitz
16.01.2014, 15:26:37
OK, teraz załapałem

A co w sytuacji, kiedy wchodzę w kolejną firmę - firm.php szuka sobie $_SESSION['ID_FIRM'], zeby na podstawie jego wartosci wyswietlic zawartosci i znajduje np: $_SESSION['ID_FIRM']['5'] i $_SESSION['ID_FIRM']['11'] - wtedy wyswieli mi 2 firmy zamiast jednej..
Kshyhoo
16.01.2014, 15:33:09
Przekaż parametr GETem i porównaj.
Leniobitz
16.01.2014, 15:53:19
Stworzy mi adres, który będzie kombinacja wszystkich elementów tej wielowymiarowej tablicy..z reszta potrzebuje żeby to nie było przekazywane GET-em
phpion
16.01.2014, 15:57:23
Cytat(Kshyhoo @ 16.01.2014, 15:33:09 )

Przekaż parametr GETem i porównaj.
To po co babrać się z sesją jak i tak chcesz to GETem?
@Leniobitz:
Dlaczego nie chcesz przekazywać GETem? Według mnie to dobre rozwiązanie. Jeśli będziesz ukrywał dane w POST/sesji to uniemożliwisz podawanie adresu do produktów danej firmy.
Leniobitz
16.01.2014, 16:26:22
@phpion - @własnie o to mi chodzi! Projekt, który tworzę to nie jest serwis, tylko aplikacja, która będzie działała wewnetrznie, więc nie potrzebuje przyjaznych URL ani nic związanego z SEO. Wręcz uważam, że zastosowanie POST/SESSION jest swego rodzaju dodatkowym zabezpieczeniem - co z tego, ze wejde przez linka, skoro musze sie zalogowac i jeszcze przekazac parametry w sposob niejawny.
Jak nie masz ssl to obojętnie czym tego nie prześlesz jako ktoś się uprze to wyjmie Ci to z post/session
Leniobitz
16.01.2014, 17:19:04
Wiem, tym sie zajme pozniej, na razie mam inny problem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.