curl + cookie Как работать с куками

Written by

in

Пришёл мне заказ написать пхп бота обучаемого 🙂

и дали конкретный сайт с самописным форумом %)
загвоздка там была в работе с куками. долго искал как максимально упростить этот процесс. вот получилось так

function send_get($get_url,$refer)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, «http://111.133.11.17:8080»);
curl_setopt($ch, CURLOPT_URL, $get_url);
curl_setopt($ch, CURLOPT_HEADER,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_REFERER, $refer );
curl_setopt($ch, CURLOPT_COOKIEJAR, «1.txt»);
curl_setopt($ch, CURLOPT_COOKIEFILE, «1.txt»);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, «Mozilla Firefox 3 (compatible; MSIE 6.0; LAS Linux)»);
curl_setopt($ch, CURLOPT_VERBOSE,1);
return $data = curl_exec($ch);
}

function send_post($post_url,$post_data,$refer)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, «http://111.133.11.17:8080»);
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_HEADER,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_REFERER, $refer );
curl_setopt($ch, CURLOPT_COOKIEJAR, «1.txt»);
curl_setopt($ch, CURLOPT_COOKIEFILE, «1.txt»);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, «Mozilla Firefox 3 (compatible; MSIE 6.0; LAS Linux)»);
curl_setopt($ch, CURLOPT_VERBOSE,1);
echo $data = curl_exec($ch);
curl_close($ch);
return $type;
}

Главное:

curl_setopt($ch, CURLOPT_COOKIEJAR, «1.txt»);
curl_setopt($ch, CURLOPT_COOKIEFILE, «1.txt»);

Все куки сваливаются в файл 1.txt и отправляются благополучно в нужный момент нужной страничке

Возможные траблы:
ФАйл с кукаи создаётся в томже каталоге где работает скрипт поэтому либо в каталоге парва должны быть полные либо сами созадём файл и даём к нему права 🙂

Comments

9 ответов для «curl + cookie Как работать с куками»

  1. Аватар пользователя Kubig™
    Kubig™

    А для curl_setopt
    ($ch, CURLOPT_COOKIEJAR, «1.txt»);
    curl_setopt($ch, CURLOPT_COOKIEFILE, «1.txt»);

    вот именно для 1.txt fopen();
    надо делать, а то как они туда запишутся?

  2. Аватар пользователя Kubig™
    Kubig™

    Ответь пожалуйста))) Исвяжись со мной по мыло kubig.blogspotсобакаgmail.com

  3. Аватар пользователя Developer
    Developer

    Не понял, что хотите сделать?
    все куки валятся в этот файл в формате мозиллы, пользовался

  4. Аватар пользователя Kubig™
    Kubig™

    Я имею в виду что надо пользоваться функцией fopen(); для записи куков в файл или это всё само туда пишется?

  5. Аватар пользователя Developer
    Developer

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

  6. Аватар пользователя Anonymous
    Anonymous

    Спасибо! Помог!
    Проблема с кукисами всё-таки была при попытке использования переменной в качестве имени файла, в моём случае решилась преобразованием в строковой тип данных функцией trim($str)

  7. Аватар пользователя Дмитрий

    Спасибо, статья помогла,давненько искал как сделать что бы курл куки записывал в файл, 😀 хотя искать то особо нечего =).

  8. Аватар пользователя tish

    От куда «1.txt»?

  9. Аватар пользователя vipdeal

    А CURLOPT_VERBOSE для чего?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *