PHP - Snoopy POST-запрос + поддерживать сессию?

Используя Snoopy, я делаю запрос, но кажется, что для POST используется другая СЕССИЯ? Когда я повторяю результаты запроса, SESSION устанавливается, но после нажатия на любую ссылку страница возвращается в состояние, не установленное для SESSION.

В настоящее время я использую этот код, чтобы сделать запрос

$dashboard = new Snoopy;

$dashboard->referer = "URL";
$dashboard->httpmethod = "POST";
$dashboard->submit("URL", $_POST);

echo $dashboard->results;

У меня нет возможности использовать cURL, так как я не контролирую сервер.

У меня такое чувство, что Snoopy делает новый SESSION_ID для HTTP POST? Я видел биты, но ничего конкретного о том, как поддерживать сессию между этими запросами?

2 ответа

Решение

Если вы не передадите SESSIONID на страницу, которую вы вызываете с помощью Snoopy (это будет верно для любого другого способа выполнения этого HTTP-запроса), то при создании этой страницы PHP будет:

  • попробуйте начать сеанс
  • поскольку идентификатор сеанса не был получен, новый сеанс будет запущен
  • который будет отличаться от того, который использовался в вашем первом сценарии.


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

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

Вам нужно позвонить session_start функция при отправке файла URL.

Итак, сессию можно поддерживать как хотите.

Другие вопросы по тегам