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. Спасибо, статья помогла,давненько искал как сделать что бы курл куки записывал в файл, :D хотя искать то особо нечего =).

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


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