Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к сессии не из веб-приложения 
V
    Опции темы
POLTER
Дата 20.3.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 25.8.2006
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Здравствуйте.
На сервере выполняется некий демон на PHP.
И есть веб-приложение, которое использует сессии (тоже на PHP).
Мне нужно из демона получить доступ к сессии веб-приложения, зная её SID.
Можно ли как-то это сделать, не лазяя напрямик в файл и таблицу бд, где хранится сессия?
Если да, то как?
Спасибо.

Это сообщение отредактировал(а) POLTER - 20.3.2008, 14:51
--------------------
Существует 10 типов людей: те, которые понимают твоичный код и те, которые его не понимают.
PM MAIL ICQ   Вверх
Canarat
Дата 20.3.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 11.3.2008
Где: Каспий

Репутация: 5
Всего: 5



POLTER
Цитата(POLTER @  20.3.2008,  14:51 Найти цитируемый пост)
напрямик в файл и таблицу бд, где хранится сессия?

нет, ибо в такой постановке задачи само по себе противоречие.
PM MAIL   Вверх
POLTER
Дата 20.3.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 25.8.2006
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Цитата

в такой постановке задачи само по себе противоречие.

Ну, я имел в виду, получить доступ через массив $_SESSION, без написания собственных обработчиков сессии.
--------------------
Существует 10 типов людей: те, которые понимают твоичный код и те, которые его не понимают.
PM MAIL ICQ   Вверх
skyboy
Дата 20.3.2008, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



первым делом замечу, что проще подобное делать через такие механизмы, которые и призваны быть "способом обмена информацией": БД или файлы. Тем более, что можно сделать сохранение в базу "прозрачным": при помощи session_set_save_handler установить собственный механизм записи, хранения и чтения. тогда в твоем "веб-приложении" будет работа с данными через переменную $_SESSION, а в демоне - обращением к непосредственному месту хранения установленному тобой(в БД).
но если так уж хочется обойтись без БД(месье желает извращений?  smile ), то могу предложить следующее.
1. сформировать страницу(скажем, return_session_var.php) 
Код

<?php
session_start();
print_r($_SESSION);
?>

2. демон будет обращаться к странице через lopback('127.0.0.1/return_session_var.php?PHPSESSID='.$phpSessionID) посредством сокетов или cURL(обычно так чужие страницы получают и парсят)   и обрабатывай содержимое.

PM MAIL   Вверх
POLTER
Дата 20.3.2008, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 25.8.2006
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Ясно, спасибо!
--------------------
Существует 10 типов людей: те, которые понимают твоичный код и те, которые его не понимают.
PM MAIL ICQ   Вверх
skyboy
Дата 20.3.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



можешь попробовать установить "знаемое демоном session id" при помоши session_id.
не на чем проверить.
Код

session_id($my_saved_session_id);
session_start();


PM MAIL   Вверх
POLTER
Дата 20.3.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 25.8.2006
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Это я первым делом попробовал, но оно не работает в не-веб приложении.
Так что буду модифицировать таблицу в бд с сессией.

Это сообщение отредактировал(а) POLTER - 20.3.2008, 16:16
--------------------
Существует 10 типов людей: те, которые понимают твоичный код и те, которые его не понимают.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 20.3.2008, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



что значит - не работает? еси приложение написано на РНР, то не "не работает", а приложение написано криво.

и не забывать в демоне закрывать сессию после работы с ней.
PM   Вверх
POLTER
Дата 20.3.2008, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 25.8.2006
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Ну незнаю, может что-то неправильно делаю?
Вот просто пример:
Код

<?php
session_id('0h0l3f9gj10adk6lbe90ntlja6');
session_start();
echo $_SESSION['nick'];
session_write_close();
?>

Если запускаю из браузера, то выводит, что требовалось.
А из консоли:
Код

PHP Notice:  Undefined index:  nick in C:\Htdocs\ttt.php on line 4

--------------------
Существует 10 типов людей: те, которые понимают твоичный код и те, которые его не понимают.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 21.3.2008, 00:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



файлы сессий консольный пых откуда берет?
PM   Вверх
POLTER
Дата 22.3.2008, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 25.8.2006
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



О, прописал в php.ini session_save_path, теперь работает везде.
Спасибо большое за наводку! То, что мне нужно было smile

Это сообщение отредактировал(а) POLTER - 22.3.2008, 00:49
--------------------
Существует 10 типов людей: те, которые понимают твоичный код и те, которые его не понимают.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0782 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.