Как я могу восстановить переменные PHP $ _SESSION из Objective-C / iOS? - PullRequest
1 голос
/ 11 марта 2012

У меня есть несколько сценариев PHP на сервере, которые возвращают файлы cookie, HTML-код и т. Д., Которые взаимодействуют с приложением iOS, над которым я работал.Такие вещи, как вход в систему, отправка элемента, получение элемента и т. Д.

Проблема заключается в сохранении постоянного соединения.Я подумал, что мы будем использовать куки, и что PHP "start session" позволит нам получить доступ к переменным $ _SESSION через cookie.Однако я не могу найти никаких данных сеанса, возвращаемых в cookie, кроме идентификатора сеанса.

Я подумал, что мог бы использовать идентификатор сеанса + ключ для извлечения элементов из сеанса PHPмассив путем вызова скрипта из приложения.Приложение не является проблемой:

Мне нужно знать, где на самом деле находятся переменные $ _SESSION, чтобы я мог их ИСПОЛЬЗОВАТЬ.Это может показаться шутливым, но это то, что мне нужно.

Если я начну сеанс, сделайте что-то вроде:

$_SESSION['username']=$_GET['username']

Разве я не смогу вернуть набор переменных для этого сеанса, используя следующее:

$session_id = $_GET['session_id'];
$key = $_GET['key'];

function getSessionValue($session_id, $key) {
    session_start($session_id);
    return $_SESSION[$key];
}

echo getSessionValue($session_id, $key);

Что-то не работает ... Я ценю любую помощь!Спасибо: D

Ответы [ 2 ]

0 голосов
/ 12 марта 2012

Прежде всего, session_start() не принимает никаких параметров . Поэтому указание идентификатора сеанса не поможет.

Во-вторых, по умолчанию PHP использует cookie для хранения идентификатора сеанса в переменной с именем PHPSESSID. PHP установит эту переменную при первом обращении к странице. Обязательно добавляйте эту переменную cookie (с тем же значением, которое установлено PHP) при отправке запросов на сервер.

Стандартным хранилищем для файлов cookie являются файлы. Расположение файлов задается в переменной session.save_path в конфигурации PHP. В Ubuntu расположение по умолчанию: /var/lib/php5

Когда запрос приходит с переменной PHPSESSID, установленной в cookie, вызов session_start() заставит PHP принять значение cookie и прочитать файл сеанса coressponding, а затем установить переменную $_SESSION.

0 голосов
/ 11 марта 2012

Вы пытались настроить сеанс на основе БД?

Или МОЖЕТ это сработать:

function getSessionValue($session_id, $key) {
    setcookie('PHPSESSID', $session_id);
    session_start($session_id);
    return $_SESSION[$key];
}

Или

Возможно, это проблема домена?http://www.php.net/manual/en/function.session-set-cookie-params.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...