[ zgas @ 18.04.2007. 21:30 ] @
Zelim da sa PHP-om pristupim nekoj stranici na internetu, da popunim formu na njoj, i da izvrsim automatski 'submit' forme i odmah nako toga procitam sta je ta stranica vratila (sadrzaj).

Pretpostavio sam da se to radi sa curl, ali mozda postoji jos neko resenje?
Neznam kako se to radi sa curl?... Pretpostavaljam da se podaci salju sa post preko curl (kako?) i nije mi jasno kako automatski izvrsiti submit? Takodje me zanima da li se moze procitati odmah i sadrzaj koji ce ta stranica vratiti? Kako bi to sve trebalo da se uradi (da li moze neko da da neki kod)?

Svako dobro.
Zoran.
[ Ivan.Markovic @ 19.04.2007. 00:09 ] @
Pogledaj ovu klasu: http://www.dinke.net/blog/2006/09/12/curl-http-client-2/sr/
[ zgas @ 25.04.2007. 13:48 ] @
Pogledao sam skirptu, ali ne radi mi. Da li neko zna ima li neko resenje jos, ili ovo da pojasni.

Znaci (sa curl):
1. slanje post podataka
2. citanje vracenje stanice
[ _BloB_ @ 26.04.2007. 07:58 ] @
cao,

pa to se radi na sledeci nacin:

otvoris tu formu na koju hoces da posaljes podatke u tvom browseru i pogledas kod.
nadjes koja je adresa na koju se submituje ta forma:

na primer:
<form action="destination.php">

to je adresa skripta koji otvaras sa Curl klasom...

e sad jos treba da setujes post varijable za svaki element forme koji zelis da 'posaljes'

svaki input, checkbox, textarea itd u toj formi mora da ima polje u Curl klasi.

to se radi recimo ovako:

$ch = curl_init();

// u vars array stavljamo sve varijable koje bi inace trebalo popuniti na formi
// bitno: imena svakog elementa moraju da budu ista kao i elementi forme!!!!
$vars = array("username" => "slobo", "password" => "koznasta");

// ovaj loop priprema nase varijable u format koji Curl razume
foreach ($vars as $k => $v)
{
$p .= $k."=".urlencode($v);
if ($i < ($size -1))
$p .= "&";
$i++;
}

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_POST,1); // ovim kazemo Curlu da je u pitanju Post a ne Get
curl_setopt($ch, CURLOPT_POSTFIELDS,$p); // ovo su nasa pripremljena polja
curl_setopt($ch, CURLOPT_URL, "destination.php"); // ovde se submituje forma
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // vrati nam rezultat, nemoj da prikazes u browseru

// grebuj rezultat u $result varijablu
$result = curl_exec($ch);

// close CURL resource, and free up system resources
curl_close($ch);

eto ovaj proces ce da popuni polja i posalje to na url gde se inace forma salje kada se rucno popuni iz browsera.
Server ce ti vratiti rezultat submitovane forme i imaces ga u $result varijabli

i to je to...



ako imas problema samo pitaj..
jer sam ovo pisao iz glave, nije bas 100% testirano... (ali sam pre taj proces radio na ovakav nacin)

doduse napravio sam helper klasu za Curl koja sakriva dosadni Curl pa je lakse sve ovo raditi...

ali to ti sada nije bitno, prvo provali kako radi Curl, ostalo je lako...

poz
UncleBlob
[ zgas @ 26.04.2007. 11:06 ] @
Puno hvala na pojasnjenju, sada mi je jasno nakojus trstranicu treba da idem sa curl (znaci na onu krajnju izvrsnu), to sam podesio. Koristio sam klasu my_curl i sada sve radi. Interesuje me samo jos kako sa curl da posaljem fajl post metodom?

[Ovu poruku je menjao zgas dana 26.04.2007. u 12:22 GMT+1]