2015-01-21 5 views
1

Я работаю над скриптом, который отправляет запрос POST на URL-адрес, на самом деле я отправляю файлы cookie вручную в заголовке .. но как взять его из текущего сеанса браузера?Захватить текущую сессию cookie с cURL

Я использовал tcpdump и grep, но это действительно неправильный выбор:, D Некоторые предложения?

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

ответ

5

Curl может справиться с этим для вас; есть возможность хранить файлы cookie в cookiejar и использовать их в последующих запросах.

Вот пример из основного сайта curl, который использует файлы cookie из файла cookie.txt для установки некоторых файлов и в то же время сохраняет новые файлы cookie в файле newcookies.txt.

http://curl.haxx.se/docs/httpscripting.html#Cookie_Basics

curl --cookie cookies.txt --cookie-jar newcookies.txt http://www.example.com 

При переходе через процесс входа в систему, например, можно было бы повторно использовать печенье из куков.

+0

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

+0

Хорошо, но это то же самое, что и с ввода ... Я хочу взять куки-файлы из сеанса браузера, не заходя в путь к файлу cookie – Nhoya

+0

Значит, вы все время говорили о своей сессии * браузера? – nlu

0

Я нашел ссылку, сломанную на примере с snipplr.com. Я отправлю его здесь для будущих справок (кредиты владельцу):

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

if (isset($_COOKIE[session_name()])) { 
    curl_setopt($ch, CURLOPT_COOKIE, session_name().'='.$_COOKIE[session_name()].'; path=/'); 
} 

session_write_close(); 
$result = curl_exec($ch); 

if (curl_errno($ch)) { 
    echo 'curl error: '.curl_error($ch); 
} 

curl_close($ch); 
session_start(); 
Смежные вопросы