ugrás a tartalomhoz

Session átadás - CURL

krisy · 2009. Nov. 22. (V), 19.38
Sziasztok!

Egy weboldalt készítek, amolyan "linkgyűjteményt". A lényege, hogy van egy nagy csomó link, amire ha a felhasználó rákattint, akkor továbbdobom az aktuális oldalra.

A probléma az, hogy van egy weboldal, amit attól függően jeleníti meg az aktuális linket, hogy SESSION-ban eltárolja, előzőleg milyen linkeken keresztül értem el oda, ahol vagyok.

Pl.: ha a VÁSÁRLÁS/KÖNYVEK oldalra kattintottam előzőleg, és egy könyv linkjét szeretném megnyitni, akkor mivel előzőleg a KÖNYVEK oldalról jöttem, a könyv linkje tartalmazni fog a KÖNYVEK kategóriával kapcsolatos információkat, például oldalszám, kiadás éve, stb. Ha ez az információ nem áll rendelkezésre (mondjuk a linket e-mailben küldtem/kaptam, akkor csak az általános információk jelennek meg, mondjuk a könyv neve, ára, leírás.


Odáig jutottam el, hogy linkre katitntás esetén nem egyből a távoli oldal hívódik meg, hanem CURL segítségével megnyitom az előző linkeket (fenti példa: VÁSÁRLÁS/KÖNYVEK), és a kapott SESSION_ID-t megszerzem, majd ezt szeretném átadni a felhasználó böngészőjének, így a távoli oldal felé úgy tűnik, a megfelelő kategóriákon keresztül jutott el a felhasználó az aktuális oldalhoz.

Ezzel egyelőre az a gond, hogy kellene csinálnom egy cookie-t, ami tartalmazza a fenti SESSION_ID-t (idáig ok), és a távoli oldal domain-jébe tartozik. Viszont ezt a legtöbb böngésző nem engedi (gondolom, biztonsági megfontolások miatt), és nem fogadja el a sütimet :-(


Van valami ötletetek, hogyan lehetne megoldani a fenti problémát?
(úgy tippelem, a távoli oldal JSP alapú, legalábbis a cookieban JSESSIONID szerepel)
 
2

Böngésző elfogadja?

krisy · 2009. Nov. 22. (V), 20.57
a böngészőt "megeszi" ezt? a setcookie (http://hu.php.net/manual/en/function.setcookie.php) függvénnyel állítottam be minden paramétert, és ha megadtam domain-t, akkor (firefox 3.6 alatt) nem fogadta el a cookie-t a böngésző :-(
3

ini_set

gex · 2009. Nov. 22. (V), 21.09
ini_set-tel próbáld és a scripted elején. setcookie-val nem hiszem hogy manapság bármelyik böngészőt át lehetne verni.

egyébként az ip cím különbözőségén is simán elbukhatsz (szervered vs kliens) ha a céloldalon azt is ellenőrzik a session lopás megelőzése érdekében.
4

Kliens oldalról

zzrek · 2009. Nov. 23. (H), 10.08
Kliens oldalról nem lehet ezt megcsinálni?
Mondjuk egy (akár láthatatlan) iframe-ben lekéred az egyik oldalt (ekkor megszerzi a sütit), majd ha betöltődött, akkor a másik linkre irányítod a böngésző főlapját. (De nem muszáj iframe, lehet httpreq is)
5

IE - 3rd party cookies

krisy · 2009. Dec. 8. (K), 14.42
A kliens oldali ötlet szuper - kivéve az IE-t :-(

Akár iframe-ben, akár img-ben megadva a külső oldalt, az onnan letöltött cookie-kat elfogadja a bönésző (IE, Chrome), azonban az IE nem, mivel ezek 3rd party cookie-k, és ezek a default privacy beállítások szerint nem elfogadhatóak :-(

Annyit találtam még, hogy az oldal header-jében meg lehet adni, az onnan származó cookie-kat hogyan kezelje a böngésző, így elfogadhatóvá válik:
http://james.jamesandkristin.net/2005/11/18/php-session-cookie-in-frames-using-internet-explorer

A gond ezzel az, hogy ezt a külső oldalnak kellene beállítanom, amihez nem férek hozzá :-(
6

Csupan teoretikusan

gphilip · 2009. Dec. 8. (K), 17.31
Szerintem ennyit nem er az egesz, ha ez tenyleg egy linkgyujtemeny. Csupan elmeleti sikon egy web proxyval lehetne megoldani a dolgot. SSR-rel kered le az oldalt, amit azonositas utan a sajat urleden adsz at a usernek. De ez nem a legszebb.
7

Írj nekik

janoszen · 2009. Dec. 8. (K), 21.14
Esetleg érdemes lenne írni nekik, mert saját magukkal is kitolnak minimum a SEO kategóriában.