Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

php curl pitanje

[es] :: PHP :: php curl pitanje

[ Pregleda: 2107 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.mbb.telenor.rs.



+303 Profil

icon php curl pitanje28.04.2011. u 10:51 - pre 157 meseci
Treba da prosledim jednom fajlu post data (ne direktno, nego moram sam da generisem string koji saljem), i nikako da se snadjem kako to da uradim. Svaki tutorial prvo extractuje post, pa ga onda procesira. Posto ja ne saljem podatke direktno posle posta, moram sam da generisem string. Ono sto mi nije jasno je:
Code:

curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
Zasto moram da saljem ovaj prvi info? I jel moze neko da mi da primer stringa koji mogu da posaljem sa ovim postfields (da kazemo da su polja koja hocu da posaljem ime i prezime?

Valjda ste me razumeli :)
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
*.static.stelkom.net.



+18 Profil

icon Re: php curl pitanje28.04.2011. u 11:44 - pre 157 meseci
Ovo prvo moras izvrsiti isto kao npr. u HTML-u mora staviti method="post" u form tag i pravilno je da je boolean tip (true ili false, ili recimo 1 ili 0)
http://php.net/manual/en/function.curl-setopt.php

$fields_string pravis u ovom obliku:

"name=marko&surname=markovic"

Pogledaj i ovu funkciju, vjerovatno je lakse sa njom nego sa foreach ;)

http://php.net/manual/en/function.http-build-query.php
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: php curl pitanje28.04.2011. u 12:45 - pre 157 meseci
Preuzeto sa http://www.php.net/manual/en/function.curl-exec.php#98628
Code (php):
/**
 * Send a POST requst using cURL
 * @param string $url to request
 * @param array $post values to send
 * @param array $options for cURL
 * @return string
 */

function curl_post($url, array $post = NULL, array $options = array())
{
    $defaults = array(
        CURLOPT_POST => 1,
        CURLOPT_HEADER => 0,
        CURLOPT_URL => $url,
        CURLOPT_FRESH_CONNECT => 1,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_FORBID_REUSE => 1,
        CURLOPT_TIMEOUT => 4,
        CURLOPT_POSTFIELDS => http_build_query($post)
    );

    $ch = curl_init();
    curl_setopt_array($ch, ($options + $defaults));
    if( ! $result = curl_exec($ch))
    {
        trigger_error(curl_error($ch));
    }
    curl_close($ch);
    return $result;
}

Banned - Not available
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.mbb.telenor.rs.



+303 Profil

icon Re: php curl pitanje28.04.2011. u 20:02 - pre 157 meseci
^to mi je malo tesko da ukapiram :)

Citat:
vatri: Ovo prvo moras izvrsiti isto kao npr. u HTML-u mora staviti method="post" u form tag i pravilno je da je boolean tip (true ili false, ili recimo 1 ili 0)
http://php.net/manual/en/function.curl-setopt.php

Cek, a sto ga ovaj onda broji? Jel mogu onda samo da stavim true i to je to?

Citat:
vatri:
$fields_string pravis u ovom obliku:

"name=marko&surname=markovic"

Pogledaj i ovu funkciju, vjerovatno je lakse sa njom nego sa foreach ;)

http://php.net/manual/en/function.http-build-query.php

Ko sisa foreach, ni za ich mi nije potreban. Podatke vucem iz baze, samo mi nije bilo jasno kako da formatiram fields_string.

Sad mi nije jasno ovo:) :
Ako uradim
Code:
print_r($_POST) dobijem Array ( [email] => cvetko.liva [first_name] => Milos [site_id] => 4 [campaign_id] => 3 [api_key] => gfdg )
i ako ovo posaljem stranici koja treba da procesira podatke, dobijem odgovor da je sve ok. Kako moze da radi i to, i "name=marko&surname=markovic"? Mislim, jel php prepoznaje i jedan i drugi format post-a, ili?
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
*.dynamic.t-2.net.



+18 Profil

icon Re: php curl pitanje28.04.2011. u 20:24 - pre 157 meseci
Broji ga mozda zato sto je brze. PHP 0 vidi i kao false, a 1,2,3,4,itd - kao true, tako da i ovo njegovo radi.

Curl izgleda prepoznaje i obicni i array i oblik koji sam ja naveo - to nisam znao do sad :)

Evo ti sa linka (koji sam gore vec postavio) objasnjenje:

"The full data to post in a HTTP "POST" operation. To post a file, prepend a filename with @ and use the full path. The filetype can be explicitly specified by following the filename with the type in the format ';type=mimetype'. This parameter can either be passed as a urlencoded string like 'para1=val1&para2=val2&...' or as an array with the field name as key and field data as value. If value is an array, the Content-Type header will be set to multipart/form-data. As of PHP 5.2.0, files thats passed to this option with the @ prefix must be in array form to work."

Ukratko mozes i array i string proslijediti.
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.mbb.telenor.rs.



+303 Profil

icon Re: php curl pitanje30.04.2011. u 00:22 - pre 157 meseci
Uspeo sam da podesim. Hvala na pomoci :) I inace stvarno je mnogo lakse napraviti ovo koristeci http://php.net/manual/en/function.http-build-query.php
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: php curl pitanje30.04.2011. u 09:14 - pre 157 meseci
Ne moraš da koristiš funkciju http_build_query() napisao si gore, a takođe i korisnik @vatri.
Banned - Not available
 
Odgovor na temu

[es] :: PHP :: php curl pitanje

[ Pregleda: 2107 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.