Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создание cookies или сессии в существующем проекте
 
 автор: Maloy   (12.07.2005 в 09:44)   письмо автору
 
 

Я пытаюсь внедрить модуль в уже существующий корпоративный портал. Портал делали давно, никто не знает, кто его делал, никто не знает полность переменные, сессии которые там используются.
Можно ли мне создать свой набор cookies или создать сессию. Так чтоб не пересекалось со служебными. Не будет ли конфликтов?
Портал огромный, найти что-либо очень трудно. Подскажите как можно это сделать? Портал на работает на ПХП с mySQL. Спасибо за помощь.

   
 
 автор: cheops   (12.07.2005 в 12:09)   письмо автору
 
   для: Maloy   (12.07.2005 в 09:44)
 

Да вы можете создать свои собственные cookie или сессии, что-бы случайно что-нибудь не затереть, лучше использовать какой-нибудь уникальный префикс в именах переменных, вроде modul_. Кроме того, механизм сессиий специально для таких случаев позволяет именновать сессии при помощи функции session_name(), таким образом ваши сессии могут быть под одним именем, а сессии портала под другим.

   
 
 автор: Maloy   (12.07.2005 в 12:37)   письмо автору
 
   для: cheops   (12.07.2005 в 12:09)
 

Спасибо. Это многое решает. У меня было условие, сделать один класс. Этот один класс и вызываеться из портала. Так у меня переменные табунами носились по классу, использовал все GLOBAL, $_GET[], $this-> value .... Теперь хоть смогу запихнуть все в кикис :) Спасибо.

   
 
 автор: Maloy   (14.07.2005 в 10:12)   письмо автору
 
   для: Maloy   (12.07.2005 в 09:44)
 

И еще один вопрос в этой теме. Хочу разобраться, я задаю session_name(), потом вызываю session_start() создается сессия. Я ее юзаю, потом хочу удалить, должен ли я вызывать опять session_name() перед session_detroy() или нет? И еще сессии ведь храняться на сервере. Т.е. каждому пользователю, который заходит на сайт, создаеться сессия с уникальным ID, я правильно понял? Т.е. ситуация когда два человека залогинились, и они юзают общие данные одной сессии теоретически невозможна?

   
 
 автор: cheops   (14.07.2005 в 12:46)   письмо автору
 
   для: 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().

   
 
 автор: Maloy   (14.07.2005 в 14:36)   письмо автору
 
   для: cheops   (14.07.2005 в 12:46)
 

т.е. session_name() используеться только один раз. А еще можно где-то это использовать? Все равно SID уникальный, вероятность совпадения практически равна 0. Я нигде не могу найти информацию, может session_name() можно как-то исполльзовать для доступа к переменным?

   
 
 автор: cheops   (14.07.2005 в 18:58)   письмо автору
 
   для: Maloy   (14.07.2005 в 14:36)
 

session_name() используется для создания нового пространства имён. Т.е. сколько бы именнованных сессий не было у пользователя будет один SID. А вот в каждой именнованной сессии могут быть зарегистрированы переменные с совпадающими именами и они не будут пересекаться. Т.е. допустим имеется сессия USER с переменными name, password, count и сессия PHPINFO с такими же именами name, password, count. Переключаясь между сессиями
<?php
  session_name
("USER");
  
session_begin();
?>

можно обращаться к переменным, не боясь затереть точно такие же переменные из PHPINFO.

   
 
 автор: Maloy   (15.07.2005 в 12:03)   письмо автору
 
   для: cheops   (14.07.2005 в 18:58)
 

Спасибо за помощь. Я решил пойти немного по другому пути и использовать сессии портала. Только свою группу переменных я записала как двухмерный массив.
$_SESSION[my_module][my_variable]
И все великолепно работает. Использую общую аутификацию на портале, авыход из модуля если ее нет. Мои переменные бегают отлично, ни с кем не пересекаясь...
Но все равно, спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования