Как я могу получить session_id () из cURL - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть несколько вопросов о cURL:

  1. Нужно ли использовать session_start() с cURL?

  2. Если нет, то какполучить session_id() от cURL?

  3. Когда генерируется session_id()?

  4. В чем разница между инициализацией сеанса cURL(curl_init) и выполнить сеанс cURL (curl_exec)?

Ответы [ 4 ]

0 голосов
/ 14 декабря 2011

Во-первых, сессии и cURL - это совершенно разные и не связанные вещи. Сеанс действует как серверный кэш для текущего пользователя. cURL - это способ отправки HTTP-запросов в PHP, таких как GET и POST. Некоторые API требуют использования cURL для взаимодействия с ними из ваших собственных скриптов / кода PHP.

Функция session_id () используется для получения или установки текущего идентификатора сеанса текущего пользователя. Если вы хотите установить идентификатор сеанса, например, 7, вы бы позвонили

session_id(7);
session_start();

Если вы хотите получить идентификатор сеанса, вы бы позвонили

session_start();
$CurrentSessID = session_id();

Идентификатор сеанса генерируется, когда вы вызываете session_start (), если вы не установили его самостоятельно перед вызовом session_start ().

0 голосов
/ 14 декабря 2011

php-сессия по умолчанию передается в cookie-файлах, если вы получаете веб-адрес cURL и пытаетесь получить доступ к другому разделу того же веб-сайта, то вы должны добавить сеанс, который вы получили от cURL

0 голосов
/ 14 декабря 2011

Возможно, вы захотите рассмотреть альтернативное решение вашей проблемы передачи пользователя с одного сайта на другой и при этом сохранить его статус «залогинен».

Я опубликовал ответ на похожую тему, которую вы, возможно, захотите проверить: Сессия потеряна при переключении с HTTP на HTTPS в PHP

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

0 голосов
/ 14 декабря 2011

cURL - это библиотека для установления соединений с серверами (так же, как это делает ваш веб-браузер), и ей не о чем говорить session_id (поскольку она просто получает то, что видит клиент, и session_id() будет методом на стороне сервера).

С учетом сказанного, обычно идентификатор сессии можно найти в заголовках запроса, таких как заголовок Set-Cookie (или иногда в самом URL).Поэтому, если вам нужно определить сессию, я хотел бы использовать функциональность Cookie Jar из cURL или получить содержимое с заголовками, чтобы вы могли просматривать значения Set-Cookie.

Последующие действия:

  • curl_init устанавливает новый запрос cURL.По сути, он создает новый экземпляр cURL, который затем можно настроить с любым из многочисленных параметров curl_setopt.
  • curl_exec в зависимости от вашей конфигурации выполняет запрос cURL и возвращает результат.В зависимости от ваших настроек это может быть фактический контент, который вы ищете, набор заголовков, один результат статуса или какое-то другое значение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...