Импресии за къдрици

Пресни впечатления от филми, от програми, от работа, от обучение и от живота.

Е, просто блог.

къдрица. POST заявки от PHP с бисквитки

Е, съответно това, което трябва да автоматизирате, зависи от това какъв цикъл ще вградите в този скрипт и как ще получавате данни.

За да се автоматизира напълно процеса, беше възможно да се откаже файлът cookie.txt и да се прихванат заглавки от сървъра, например по следния начин: curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'setCookies'), а в редовете за обработка на setCookies с "Set-Cookie:".

Владимир, може ли по-конкретно - какво прави редът curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'setCookies') ?

Трябва да взема бисквитки от Firefox, така че всеки път, когато не ги въвеждам ръчно, да изглежда, че се съхраняват в Sql-lite база данни, но ме мързеше да разбера.

Можете също така да влезете през формата, но отново трябва да зададете върнатите бисквитки.

добре, не успях да вляза с помощта на формата и по-точно на torrents.ru, така че трябва да первертирам с бисквитки от firefox

Всичко това успешно работи, ако библиотеката curl е инсталирана в php. И ако не?

Е, това е уместно за мен, за да автоматизирам действията си, но няма проблем да сложа къдрици вкъщи

Да, не можах дори в torrents.ru. Изглежда, че там има някои умни неща против спам...

З.Й. В последния пример в CURLOPT_POSTDATA: login_password=#pass#& login_username=#login#& cookie_test=1315534629& redirect=index.php

З.З.Й. Когато се изпращат чрез POST, заглавките имат „Бисквитка: bb_test=1315534629“

Вероятно имате нужда от това за груби пароли, така че няма да казвам :)

Инсталирайте http://livehttpheaders.mozdev.org/ разширението за firefox - тампоказват се всички променливи в заявката, които са изпратени. Трябва също да добавите submit=something към post-request.

О да! Благодаря :) Разширението помогна :) Оказа се, че проблемът е в едно поле :) Но във FireBug това поле не се показва :)

В Python е същото.

$fcook = getcwd().'/cook.txt'; $url = 'http://mail.ru'; $ch = curl_init(); $opts = array( CURLOPT_COOKIEJAR => $fcook, CURLOPT_COOKIEFILE => $fcook, CURLOPT_RETURNTRANSFER => вярно, CURLOPT_URL => $url, CURLOPT_TIMEOUT => 15); curl_setopt_array($ch,$opts); $ozzi = curl_exec($ch);

OT Yandex не иска да приема бисквитки. Странно

помощ с пренасочването: правя заявка към хоста, CURLOPT_FOLLOWLOCATION=>1, помага в половината от случаите, но със заглавката 302 това е проблем. Не искам да правя двойна заявка (първо заглавката, след това тялото), искам да получа отделно тяло в резултат на curl_exec, отделна заглавка - и ако кодът на отговор е 302 в заглавката - направете втора заявка, използвайки нов url. Как да направите това? CURLOPT_HEADERFUNCTION може да помогне тук? Или CURLOPT_WRITEHEADER, но как да се справя правилно?

Търсих в Google http://www.sitepoint.com/forums/showthread.php?590248-Getting-response-header-in-PHP-cURL-request, нали?