Impresii de bucle

Impresii proaspete din filme, din programe, din muncă, din studii și din viață.

Ei bine, doar un blog.

răsuci. Solicitări POST de la PHP cu cookie-uri

Ei bine, în consecință, ceea ce trebuie să automatizați depinde de ciclul pe care îl veți construi în acest script și de modul în care veți primi datele.

Pentru a automatiza complet procesul, a fost posibil să refuzați fișierul cookie.txt și să interceptați anteturile de pe server, de exemplu, astfel: curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'setCookies'), iar în setCookies linii de proces cu „Set-Cookie:”.

Vladimir, poți fi mai precis - ce face linia curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'setCookies') ?

Trebuie să iau cookie-uri din Firefox, astfel încât de fiecare dată când nu le introduc manual, ele par să fie stocate într-o bază de date Sql-lite, dar mi-a fost prea lene să-mi dau seama.

De asemenea, vă puteți autentifica prin formular, dar din nou trebuie să setați cookie-urile returnate.

Ei bine, nu am reușit să mă conectez folosind formularul, și mai precis pe torrents.ru, așa că trebuie să pervert cu cookie-urile de la firefox

Toate acestea funcționează fericit dacă biblioteca curl este instalată în php. Și dacă nu?

Ei bine, acest lucru este relevant pentru mine să-mi automatizez acțiunile, dar nu este nicio problemă să pun curl acasă

Da, nici măcar pe torrents.ru nu am putut. Se pare că există niște chestii inteligente anti-spam acolo...

Z.Y. În ultimul exemplu din CURLOPT_POSTDATA: login_password=#pass#& login_username=#login#& cookie_test=1315534629& redirect=index.php

Z.Z.Y. Când sunt trimise prin POST, antetele au „Cookie: bb_test=1315534629”

Probabil că aveți nevoie de asta pentru parole de forță brută, așa că nu voi spune :)

Instalați extensia http://livehttpheaders.mozdev.org/ pentru firefox - acolosunt afișate toate variabilele din cererea care sunt trimise. De asemenea, aveți nevoie de submit=ceva de adăugat la cererea ulterioară.

Oh da! Mulțumesc :) Extensia a ajutat :) S-a dovedit că problema era într-un singur câmp :) Dar în FireBug acest câmp nu a fost afișat :)

La fel este și în Python.

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

OT Yandex nu dorește să accepte cookie-uri. Ciudat

ajutor la redirecționare: fac o cerere către gazdă, CURLOPT_FOLLOWLOCATION=>1, ajută în jumătate din cazuri, dar cu antetul 302 este o problemă. Nu vreau să fac o cerere dublă (mai întâi antetul, apoi corpul), vreau să obțin un corp separat ca urmare a curl_exec, un antet separat - și dacă codul de răspuns este 302 în antet - faceți o secundă cerere folosind o nouă adresă URL. Cum să faci asta? CURLOPT_HEADERFUNCTION ar putea ajuta aici? Sau CURLOPT_WRITEHEADER, dar cum să o gestionezi corect?

Am căutat pe google http://www.sitepoint.com/forums/showthread.php?590248-Getting-response-header-in-PHP-cURL-request, nu-i așa?