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

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

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

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 и отправляются благополучно в нужный момент нужной страничке

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

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

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

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

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

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

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

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

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

  8. От куда “1.txt”?

  9. А CURLOPT_VERBOSE для чего?

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>