Session file hossza
Kérdés lenne, van-e tapasztalati érték egy session fájl maximálisan kezelhető fájlméretére?
Én egyszer teszteltem cookie fájlt, ~2,5kByte-t tudott max. kezelni Win98 rendszeren.
Mihez: egy szájton web-áruház készül. Minden boltnak saját bejelentkező processze van és önálló kosarakat használunk. A tag adatokat és a kosarak tartalmát is sessionokban tároljuk. Egyszerre fog a kliens több boltban is vásárolni így lehetséges, hogy egyes esetekben szokatlan hosszúra nőhet a session adatsor.
Köszi.
Thom
[ThomasWebMűhely] [ThomasPortál]
■ Én egyszer teszteltem cookie fájlt, ~2,5kByte-t tudott max. kezelni Win98 rendszeren.
Mihez: egy szájton web-áruház készül. Minden boltnak saját bejelentkező processze van és önálló kosarakat használunk. A tag adatokat és a kosarak tartalmát is sessionokban tároljuk. Egyszerre fog a kliens több boltban is vásárolni így lehetséges, hogy egyes esetekben szokatlan hosszúra nőhet a session adatsor.
Köszi.
Thom
[ThomasWebMűhely] [ThomasPortál]
Cookie nem változó
$_SESSION
), a PHP memória limitje lehet érdekes, ami alapesetben 8MB, de átállítható. Ezen kívül nem tudok limitről, ami a session adatokra vonatkozna.Köszi
Köszi a gyors választ.
Üdv: Thom
[ThomasWebMűhely] [ThomasPortál]
Nem egészen
ha a helyhiany annyira proble
A kérdés még fennáll
Tkp. fájlban tárolom: a session fájlban. A böngésző csak az azonosítót kapja meg. Ha így nem menne, akkor nyitnék minden vásárlás kezdetén egy fájl a kosárnak. Csak ezt meg a lejárt fájlok törlése bonyolítja - lásd fentebb, több bolt van és valószínű nem mindegyikben fogja rendeléssel befejezni a vásárlást.
Külső adatbázist ebben az alkalmazásban nem használunk, a szükséges adattárolások adatfájlokba történnek.
Szerintem nem kell 8Mega, de elképzelhető, hogy néhány 10, néhány 100 kByte szükséges lesz. Nem találtam irodalmat a használható sessionfájlok max. méretére, ezért a kérdés a hasonló tapasztalatokról.
Az általam fentebb írt cookie - 2,5kByte adat kliens oldali javascriptes, kukis adattárolásra vonatkozott, ez tapasztalati adat. Ennyit volt hajlandó egy kuki fájlba max. beleírni, de ez a kliensen futott, adott opsys-nél.
Tehát a kérdés még fennáll: ha nem érvényes a 8MByte, akkor van-e infó, vagy tapasztalat, mekkora fájlméretű session fájlt hajlandó a kezelni a szerver+php?
Üdv: Thom
[ThomasWebMűhely] [ThomasPortál]
Mi ekkora?
Hmm... Úgy néz ki félreér
Tehát: adott egy portál, benne több nagykereskedőnek saját területe (ezeket én alportáloknak nevezem). Minden nagykereskedőnek saját partneri adatbázisa van, a látogató egy látogatás során több helyre is bejelentkezhet. A termékadatok egy részét csak a partnerok láthatják, pl. a partneradatoknál nyilvántartott engedménnyel kalkulált árakat. Ha több helyre van egyszerre bejelentkezve, akkor össze tudja hasonlítani a nagykereskedők ajánlatait. Tehát egy munkamenetben több bejelentkezési adatot kell tárolni - csak az azonosításhoz fontosakat.
Ezenkívül a kosarak (kiválasztott termékek) adatait (árukód, változat, db...) is a sessionban tároljuk. Szerintem ezt is így szoktuk. Csakhogy itt több bejelentkezésről és több kosárról is lehet szó.
Pl. a számla- és szállító adatokat is megjegyezzük a későbbi gyorsabb űrlap kitöltés miatt, de azokat már a kliens gépére letett kukival.
Thom
[ThomasWebMűhely] [ThomasPortál]
Számlához kuki a legrosszabb szerintem
Minél kevesebb fölös memóriát használsz minden szkript futásnál, annál gyorsabb lesz a szkript, és annál elégedettebb lesz a vásárló :)
Nos, ezeket én is így terve
A sessionban tárolt partneri adatok:
loginnév, mailcím(sok helyen felajánljuk űrlapba), jogosultsági szint(pl: partner, belső_munkatárs, editor..., mindegyik más tartalmat érhet el), bejelentkezett státusz(true/false)
tehát csak a legfontosabbak.
A kitöltött számla azonosító adatinak megjegyzésére legegyszerűbbnek a kliens kuki megoldást találtam. Tehát ennek nincs köze a sessionhoz, pl. $_COOKIE['data'] néven leteszem 30 nap lejárattal a gépére.
Erre a szerver adattárolás is megoldás lehet, még nincs eldöntve, de szerintem a kuki-s egyszerűbb.
Thom
[ThomasWebMűhely] [ThomasPortál]
Nincs itt félreértés
Mindenesetre nem jó ötlet hatalmas adatokkal dolgozni, mert az jócskán megeszi a teljesítményt. A rossz kódokból meg csak az kér, aki nem tudja, hogy a kóklereket kíméletlenül el kell hajtani. Én pl. nem tárolnék 300k-t sem a session-ben.
A másik félreértés abból eredhet, hogy a számla- és szállítóadatok cookie-kben vannak. Szerintem ezeket egyszerűen bele kell rakni az adatbázisba. Hiszen egyrészt a cookie adatbázis a kliensen bárki számára olvasható (már azok olvashatják, akik a klienst használhatják), és nem hordozható (pl. más gépről bejelentkezve nincs ott a megszokott cím). Ide az is bejátszik, hogy a nagy worm hullámok miatt már csak az nem törhet be a windows kliensekbe, aki nem akar. Egy szerverbe már sokkal ritkábban törnek be, mint az azt használó kliensekébe átlagosan.
---jul
Köszi a hasznos válaszokat.
Jelenleg ennek a modulnak az egy-felhasználós változata határidős, ezt - azt hiszem - megcsinálom az eredeti módon: sessionban a bejelentkezés és a kosár. Így még nem lesz túl hosszú a session fájl, és ez már megvan írva.
A kérdéseimmel a modul továbbfejlesztésére gondoltam. Multiportálos rendszernél (több kereskedő ajánlatai egy portálon belül önálló alportálokban) meggyőztetek a kosár-adatok adatbázisos tárolásáról, csak ehhez a meglévő adatkezelésben is sok mindent módosítani kell - ez már egy következő történet lesz.
A számla adatok tárolása pótlólagos funkció lehet, de itt is igaza lehet 'js'-nek.
Üdv: Thom
[ThomasWebMűhely] [ThomasPortál]