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.
Итак, сессию можно поддерживать как хотите.