|
|
|
| Я пытаюсь внедрить модуль в уже существующий корпоративный портал. Портал делали давно, никто не знает, кто его делал, никто не знает полность переменные, сессии которые там используются.
Можно ли мне создать свой набор cookies или создать сессию. Так чтоб не пересекалось со служебными. Не будет ли конфликтов?
Портал огромный, найти что-либо очень трудно. Подскажите как можно это сделать? Портал на работает на ПХП с mySQL. Спасибо за помощь. | |
|
|
|
|
|
|
|
для: Maloy
(12.07.2005 в 09:44)
| | Да вы можете создать свои собственные cookie или сессии, что-бы случайно что-нибудь не затереть, лучше использовать какой-нибудь уникальный префикс в именах переменных, вроде modul_. Кроме того, механизм сессиий специально для таких случаев позволяет именновать сессии при помощи функции session_name(), таким образом ваши сессии могут быть под одним именем, а сессии портала под другим. | |
|
|
|
|
|
|
|
для: cheops
(12.07.2005 в 12:09)
| | Спасибо. Это многое решает. У меня было условие, сделать один класс. Этот один класс и вызываеться из портала. Так у меня переменные табунами носились по классу, использовал все GLOBAL, $_GET[], $this-> value .... Теперь хоть смогу запихнуть все в кикис :) Спасибо. | |
|
|
|
|
|
|
|
для: Maloy
(12.07.2005 в 09:44)
| | И еще один вопрос в этой теме. Хочу разобраться, я задаю session_name(), потом вызываю session_start() создается сессия. Я ее юзаю, потом хочу удалить, должен ли я вызывать опять session_name() перед session_detroy() или нет? И еще сессии ведь храняться на сервере. Т.е. каждому пользователю, который заходит на сайт, создаеться сессия с уникальным ID, я правильно понял? Т.е. ситуация когда два человека залогинились, и они юзают общие данные одной сессии теоретически невозможна? | |
|
|
|
|
|
|
|
для: Maloy
(14.07.2005 в 10:12)
| | 1) session_name() следует вызывать только перед session_start()
2) В идеале два человека не должно испльзовать сессию, но если злоумышленику станет известен ID и он подделает сессионную куку с ним или передаст его через URL (в том, случае, если SID передается методом GET), то возможна кража сессии http://www.softtime.ru/info/articlephp.php?id_article=36. Тогда возможно, что спустя некоторое время по этому ID сможет зайти другой человек. Этого не произойдёт, если время жизник сессии мало или она уничтожается при помощи session_destroy(). | |
|
|
|
|
|
|
|
для: cheops
(14.07.2005 в 12:46)
| | т.е. session_name() используеться только один раз. А еще можно где-то это использовать? Все равно SID уникальный, вероятность совпадения практически равна 0. Я нигде не могу найти информацию, может session_name() можно как-то исполльзовать для доступа к переменным? | |
|
|
|
|
|
|
|
для: Maloy
(14.07.2005 в 14:36)
| | session_name() используется для создания нового пространства имён. Т.е. сколько бы именнованных сессий не было у пользователя будет один SID. А вот в каждой именнованной сессии могут быть зарегистрированы переменные с совпадающими именами и они не будут пересекаться. Т.е. допустим имеется сессия USER с переменными name, password, count и сессия PHPINFO с такими же именами name, password, count. Переключаясь между сессиями
<?php
session_name("USER");
session_begin();
?>
|
можно обращаться к переменным, не боясь затереть точно такие же переменные из PHPINFO. | |
|
|
|
|
|
|
|
для: cheops
(14.07.2005 в 18:58)
| | Спасибо за помощь. Я решил пойти немного по другому пути и использовать сессии портала. Только свою группу переменных я записала как двухмерный массив.
$_SESSION[my_module][my_variable]
И все великолепно работает. Использую общую аутификацию на портале, авыход из модуля если ее нет. Мои переменные бегают отлично, ни с кем не пересекаясь...
Но все равно, спасибо. | |
|
|
|