3 вопроса... ((сесси+куки, перехват переменных и обрабочик выхода)

Статус
В этой теме нельзя размещать новые ответы.

wanderer

PHP - rulez!...
3 вопроса... ((сесси+куки, перехват переменных и обрабочик выхода)

здрасть!
есть три вопроса:
1.
PHP:
if (!isset($PHPSESSID)) { 
  $PHPSESSID = random_id(); 
} 
session_id($PHPSESSID); 
ini_set("session.use_cookies", 1);  
session_save_path($sessions_dir . "/"); 
session_start(); 
session_register("user", "logined");
трабл в том, что сес. иди передаётся через ссылки, а не по кукам ... в пнп.ини по умолчанию стоит по умолчанию использование куков... куки работают.... и код работает без одной строки session_id($PHPSESSID);... как токо её добавляю сразу юзает юрл, а не куки....
поискал по форуму, не нашёл... может плохо искал....

2. как можно перехватить обращение к переменным?... типа так, как делают сессии... session_register("что-то"); а потом сессии лоят обращения к этой переменной... как это сделать бы?...

3. я где то слышал (точно не помню где и как :)) функцию заменяющую стандартный обработчик выхода на свою функцию... как она называется?... поискал я .... чето не нашёл...

З.Ы. если эти темы уже были то скажите по каким словам тскать... а поискал - не нашёл :(
 

wanderer

PHP - rulez!...
to Дмитрий: неа..... тут нужна функция, которая переставляет стандартный обработчик выхода из программы на свою функцию....
 

csa

Guest
Re: 3 вопроса... ((сесси+куки, перехват переменных и обрабочик выхода)

Автор оригинала: wanderer
1.
и код работает без одной строки session_id($PHPSESSID);... как токо её добавляю сразу юзает юрл, а не куки....
а зачем тебе идентификатор заменять?

2. как можно перехватить обращение к переменным?...
вообще-то они определяются на глобальном уровне, имхо
если ты попробуешь обратиться к сессионной переменной из функции, то ничего не получится

3. я где то слышал (точно не помню где и как :)) функцию заменяющую стандартный обработчик выхода на свою функцию...
используй деструктор из PEAR
 

wanderer

PHP - rulez!...
1. рые два отпадают, если решится первый вопрос.... так надо.... ид сессии = ид юзера
2. нет... не обращение сессии к переменным, а наподобии как сессии делают.... как они перехватывают... вот есть у меня:
session_start();
session_register("abra");
$abra=1;
и в сессии abra будет тоже равна 1... как сессии перехватывают переменные?... или это делает сам PHP?
3. фэнкс...
 

Larson

Новичок
Автор оригинала: wanderer

и в сессии abra будет тоже равна 1... как сессии перехватывают переменные?... или это делает сам PHP?
Что значит ... и в сессии abra будет тожа равна 1. Ты делаешь session_register, твоя абра=1 записывается в файл с именем типа sess_id_session.
Что значит сессии перехватывают переменные?
Ты делаешь session_start, php смотрит есть ли такой файл sess_id_session, если есть то он загоняет все переменные в нем в $_SESSION, и если register_globals=on - то и в глобальные переменые с одноименным названием. ИМХО так.
 

csa

Guest
Автор оригинала: wanderer
так надо.... ид сессии = ид юзера
тебе не кажется, что в таком случае сессию можно легко перехватить? или ид юзера у тебя состоит из нескольких десятков символов?

2. нет... не обращение сессии к переменным, а наподобии как сессии делают.... как они перехватывают... вот есть у меня:
session_start();
session_register("abra");
$abra=1;
и в сессии abra будет тоже равна 1... как сессии перехватывают переменные?... или это делает сам PHP?
это делает пхп
думается, что это файл с переменными сессии записывается по завершении работы интерпретатора
 

csa

Guest
кстати, насколько я помню, при первом старте сессий (когда ни в куках, ни в гет-запросе сида нет), пхп ставит во все урлы сиды
после первого перехода по ссылкам он выясняет, держаться ли куки, и решает, что использовать
 

Артем

Guest
Автор оригинала: wanderer
1. рые два отпадают, если решится первый вопрос.... так надо.... ид сессии = ид юзера
2. нет... не обращение сессии к переменным, а наподобии как сессии делают.... как они перехватывают... вот есть у меня:
session_start();
session_register("abra");
$abra=1;
и в сессии abra будет тоже равна 1... как сессии перехватывают переменные?... или это делает сам PHP?
3. фэнкс...
может быть во время работы программы в $_SESSION хранится ссылка на переменную?
 

SeazoN

Guest
1. Не используй относительные урлы.
2. ini_set("session.use_trans_sid", 0);

А это зачем?
PHP:
if (!isset($PHPSESSID)) {  
  $PHPSESSID = random_id();  
}
 

wanderer

PHP - rulez!...
to SeazoN: это если человек первый раз зашёл, то ему присваивался новый сид... свой, нужный и не повторимый...
to Артем: ты про второе?... если да, то это не то... и ИМХО, я уже понял, что это сам РНР делает при закрытии...
to csa: это то я знаю... а вот как дальше? :(
to all: ладна... все сделал по старинки.. храню в куках и ид сессии и ид юзера.. :( хотя хочется чего - нибудь нового...
 

SeazoN

Guest
# wanderer
> это если человек первый раз зашёл, то ему присваивался >новый сид... свой, нужный и не повторимый...

Он ему и так присвается(если пхп с сессиями), причём _достаточно_ неповторимый.

> ладна... все сделал по старинки.. храню в куках и ид сессии и > ид юзера.. хотя хочется чего - нибудь нового...

Это ты зря, ещё раз прочитай моё сообщение :)
 

RomikChef

Guest
вандерер, в куках ничего хранить, связанного с сессиями, не надо.
Сессии, ты уж поверь, люди не сильно глупее тебя писали.
И они (сессии) прекрасно справляются со своими обязанностями без твоего участия.
Все, что тебе надо - это написать сессион_старт в каждом скрипте, сессион_регистер там где надо в сессию записать, и обращаться к сессионным переменным.
Остальное не твоего ума дело. Ни куки, ни имя сессии, ни ид - не должны тебя волновать.

На всякий случай скажу еще, что сессия - это сеанс работы с сайтом. По определению.
А то вдруг ты не знаешь.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху