Xpoint
   [напомнить пароль]

php чужая сессия

Метки: [без меток]
2010-07-15 14:10:43 [обр] Александр Петров(2/4)[досье]

Работает скрипт, долго работает, демон он, сокет обслуживает и вот он узнает sid и перед ним стоит задача подключится к этой сессии и просмотреть данные.

   ........
   session_id($sid);
   session_start();
   print_r($_SESSION);
   session_unset();
   .........
  1. демон находится в той же папке что и весь сайт
  2. до старта session_start вывод уже осуществлялся
  3. пути сохранения сессий в конфигах для apache и cli все одинаковое.

?

спустя 16 минут [обр] Александр Петров(2/4)[досье]
$_SESSION пустой
спустя 1 час 48 минут [обр] Николай Комиссаров aka Survivor(13/81)[досье]

код

session_id($sid);
session_start();

должен работать.

  1. $sid - точно существующий\не истекший?
  2. в этой сессии точно есть данные?
  3. session_unset() - точно имеется ввиду то, что написано? Возможно имелось ввиду session_write_close(). unset как раз и делает $_SESSION пустой.
спустя 3 минуты [обр] Николай Комиссаров aka Survivor(13/81)[досье]
  1. возможно на момент когда вы пытаетесь так сделать уже есть открытая сессия, тогда ее нужно сначала закрыть
session_write_close();
session_id($sid);
session_start();
спустя 7 часов [обр] Филипп Ткачев(20/112)[досье]
Александр Петров[досье], а чем плохо держать сессию в базе данных? И тогда демоны не нужны. А можно их и не только на php писать, а на чем-нибудь более быстром и надежном.
При таком подходе есть и другие плюсы, уничтожение сессии - если пользователя нужно срочно "кильнуть" из системы, или восстановление старой сессии. Ну и подсчеты в духе столько-то онлайн.
спустя 8 часов [обр] Александр Петров(2/4)[досье]
sudo php -q script.php
Оказывается что из командной строки PHP не хватало прав на открытие сесиии.
Николай Комиссаров aka Survivor[досье], спасибо с Unset, тупанул я и с write_close();
спустя 8 минут [обр] Александр Петров(2/4)[досье]

Филипп Ткачев[досье]

Александр Петров, а чем плохо держать сессию в базе данных? И тогда демоны не нужны

Как демон не нужен а сокет? у меня демон сокет обслуживает.

При таком подходе есть и другие плюсы, уничтожение сессии - если пользователя нужно срочно "кильнуть" из системы, или восстановление старой сессии. Ну и подсчеты в духе столько-то онлайн.

пока такой задачи не ставиться. А вы предлагаете, так на будущее навесить обработчики на механизм php сессий при сохранении, удалении и т.д. или свой придумывать. Пользователей будет всего 50 местная интрасеть.

спустя 2 минуты [обр] Александр Петров(2/4)[досье]
а сколько онлайн и кто не сложно реализовать, демон то это знает. я могу к нему обратиться через тот же сокет и он мне все расскажет. А на счет на чем нибудь надежном, соглашусь. но пока PHP только для того что бы исследовать возможность работы браузера с сокетами, посмотреть как это выглядит.
спустя 4 часа 33 минуты [обр] Филипп Ткачев(20/112)[досье]
Александр Петров[досье], ну в таком случае мои советы бесполезны. Просто вы говорите, что демон сокет обслуживает, а в чем задача этого демона? Чат? Конференция или jabber-bot?
спустя 1 час 8 минут [обр] Александр Петров(2/4)[досье]
Филипп Ткачев[досье], нечто похожее но не то и не другое. просто пользователю нужно знать когда на его имя появились документы. Можно было аяксом, но тут такая задача, интранет, захотел что то новенькое протестировать. Только вот демоны на Php, память течет. Придется проверять в скрипте сколько памяти используется, останавливать скрипт и через шелл запускать еще, а клиентам давать функции переконнекта. Это первый вариант, а второй форк, но тоже пока улучшение не вижу.
Powered by POEM™ Engine Copyright © 2002-2005