PHP CURL Cookie не сохраняется при повторном вызове cookie - PullRequest
1 голос
/ 22 июля 2011

У меня есть php-страница, которая использует CURL для входа на другую страницу, получения cookie-файлов и затем использует их для вызова другой страницы.На новой странице php может быть вызван снова, чтобы вызвать ту же страницу, но с другими параметрами.Этот код работает на моем бесплатном веб-хостинге.Однако, когда я переместил его на мою клиентскую веб-страницу, он работает для первого вызова (т. Е. Cookie был создан и используется нормально), но не при повторном вызове страницы с новым параметром (т. Е. Cookie-файлы не используются повторно).Код написан на WordPress, и все детали практически идентичны (так, как я скопировал темы, плагины и БД с одного сайта на другой).Каковы были бы причины для разницы и как бы я изменил эту разницу?Единственное отличие, которое я вижу в данный момент, - это просмотр ответа с веб-страниц: у сайта, который не работает, для элемента управления кэшированием установлено отсутствие кэширования, а age = 0.Будет ли это причиной, и если да, то как я могу это изменить?

1 Ответ

0 голосов
/ 22 июля 2011

Попробуйте вручную назначить файл cookiejar / файл для ваших операций curl:

$cookie_file = "/tmp/cookie/cookie1.txt";
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);

curl будет считывать файлы cookie из cookiejar перед запуском запроса и записывать полученные файлы cookie в файл cookie, полученный из ответа..

Путь должен быть доступен и доступен для чтения / записи пользователем, для которого выполняется PHP.Вы должны использовать полный путь, а не относительный.

Редактировать: Марк Б пишет в PHP, Curl, curl_exec (),curl_close () и куки , что куки связаны с ручкой скручивания.Поэтому до тех пор, пока вы не закроете дескриптор, curl должен позаботиться о файлах cookie.

Поэтому вам может не понадобиться cookiejar / файл, если оба запроса используют один и тот же дескриптор curl.

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