session, cookie, use_trans_sid???

2 отговора 98 прегледа
#1

session, cookie, use_trans_sid???

Здравейте,

Правя си тука една малка библиотечка която да ми автоматизира използването на sessions и се натъквам на следните проблеми:

Вариант 1
използвам cookie и всичко си работи, докато не съм забранил кукитата в браузъра

Вариант 2
използвам session.use_trans_sid=1 и всичко си работи, само дето изкарва Session ID-to в URL-то; кукита не се ползват (очевадно)

Та, сега въпроса - е ли е възможно да се комбинират двата метода, така че ако на юзера са му забранени кукитата, да мине в режим trans_sid? Щото аз пробвах, ама въпросния ини-сет не работи никак когато се пробвам да го сет-на от скрипта... ако го оставя включен (session.use_trans_sid=1 и session.use_cookie=1) теоретично пак работи с кукита, ама от втория път, щото при първото влизане на страницата в линковете продължава да ми включва Session-ID-то...

Имате ли неква идея как да го направя тва? Единственото което ми идва на ум, е да кажа сесията да не използва куки, а транс_сид, и аз да пробвам "ръчно" да си създам куки, след което ако го има да го ползвам, ако не - през URL-a???

Just a genius

Отговор
в отговор на Blake #2

Re: session, cookie, use_trans_sid???

Точно session.use_trans_sid=1 и session.use_cookie=1 е за твоя случай. PHP-то ще се опита да сетне cookie и ако не успее, ще пусне нещата през URL. Това става автоматично. Допълнително, при работа с функции от ниско ниво, като header(); примерно, трябва сам да се грижиш да предадеш $PHPSESSID.

Аз използвам тази функция:

function addsession($symbol="?") {

return (!isset($_COOKIE[session_name()])&&session_id())?"$symbol".session_name()."=".session_id():"";
}


Викам я, където имам:

header("Location: index.php".addsession())

или съответно:

header("Location: index.php?a=8".addsession('&'))

Everything louder than everything else...

Редактирано от Dakota на

Отговор
в отговор на Dakota #3

Re: session, cookie, use_trans_sid???

10x, sha probvam...
v interes na istinata mai ne probvah tochno s variant trans_sid+use_cookie

Just a genius

Отговор