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

Форум PHP

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

 

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

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

тема: Сессии одинаковые браузеры и IP
 
 автор: Nevi   (10.01.2008 в 19:02)   письмо автору
 
 

прочитал тут http://phpfaq.ru/session
Для начала надо как-то идентифицировать браузер. Для этого надо выдать ему уникальный идентификатор и попросить передавать его с каждым запросом.

ПОЯВИЛСЯ ВОПРОС
например 2 идентичных мобильных телефона - у которых браузеры ===
и IP одинаковый как например у абонентов ТЕЛЕ2 у всех один и тот же IP

ЧТо же получается - заходить один с Nokia 6230 например ТЕЛЕ2 и все кто заходит с того же телефона и оператора - попадают на первую открывшуюся сессию?

Где гарантия того что сессии уникальны7

   
 
 автор: а-я   (10.01.2008 в 19:10)   письмо автору
 
   для: Nevi   (10.01.2008 в 19:02)
 

читай внимательней... особое внимание удели SID - узнай что это такое

   
 
 автор: SHAman   (10.01.2008 в 19:22)   письмо автору
 
   для: Nevi   (10.01.2008 в 19:02)
 

Идентификатор генерируется не исходя из модели телефона или браузера. Это уникальный хэш-код. хэш-коды, в пределах одного сайта уникальны. Попробуй войди в свою почту через веб-интерфейс в одном браузере, затем - в другом. Во втором опять придется проходить через процедуру логина. После этого, у тебя будет два барузера, оба залогинены и оба - с разными идентификаторами сессии.

   
 
 автор: Nevi   (10.01.2008 в 19:53)   письмо автору
 
   для: SHAman   (10.01.2008 в 19:22)
 

а еще вопрос из области фантастики СЕССИЙ

есть два одинаковых скрипта
usr/site/site1/ses.php 644 user user
usr/site/site2/ses.php 644 user user
в которых сессия стартуется так
session_save_path("/usr/site/site1/tmp/sessions/");
session_name('ssid');
session_start();
и так
session_save_path("/usr/site/site2/tmp/sessions/");
session_name('ssid');
session_start();
Сессии нормально создаются и с ними можно работать в обоих случаях
однако
в /usr/site/site1/tmp/sessions/ 777 user user - сессии сами стираются по прошестивии 24 минут
а во втором
/usr/site/site2/tmp/sessions/ 777 user user - сессии не стираются - я вижу даже сессии за вчерашний день

сами сессии в обоих случаях пишутся с правами
600 www user

самое фантастическое - что я узнал что сесии не должны стираться НИ в ПЕРВОМ ни во ВТОРОМ Случае!!!!!

из документации php
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files
; (see session.save_path above), then garbage collection does *not*
; happen automatically. You will need to do your own garbage
; collection through a shell script, cron entry, or some other method.
; For example, the following script would is the equivalent of
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; cd /path/to/sessions; find -cmin +24 | xargs rm

кто сможет объяснить ЧУДО? =) (я уже сутки сижу перечитал все поисковики - ответа нет!)
PS в кроне нет никаких записей!

   
 
 автор: а-я   (10.01.2008 в 21:11)   письмо автору
 
   для: Nevi   (10.01.2008 в 19:53)
 

а ты запускаешь эти скрипты?
сессия не крон.. и стирать будет только по запуску сценария...

кроме session.gc_maxlifetime, есть еще один параметр... он указывает на процент запуска "сборщика мусора" по умолчанию 1...

т.е. 1 раз из 100, он стирет данные, если время пришло... =)

   
 
 автор: Nevi   (10.01.2008 в 21:35)   письмо автору
 
   для: а-я   (10.01.2008 в 21:11)
 

похоже вы правы

; Define the probability that the 'garbage collection' process is started
; on every session initialization.
; The probability is calculated by using gc_probability/gc_divisor,
; e.g. 1/100 means there is a 1% chance that the GC process starts
; on each request.

session.gc_probability = 1
session.gc_divisor = 100

а я думал фантастика

подождем когда будет 101 сессия пока всего 20 сессий =)

   
Rambler's Top100
вверх

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