Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [curl] Przesyłanie tablic wielowymiarowych metodą POST
Athlan
post
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Problem dotyczy CURL'a. Mam tabliczkę:

  1. <?php
  2. $this->_aDataPost = array('test' => array('test' => array('test' => array('test' => 'a'))));
  3. ?>


Wysyłam ją po czym w dumpie $_POST otrzymuje:

Kod
array(1) { ["test"]=> string(5) "Array" }


CURL nie przekazuje podtablic drugiego poziomu?

Zaserializeować danych też nie mogę, bo przy stringach UTF-8 jest bug i zwraca false.

-- EDIT --

W specyikacji HttpRequest też jest takie coś:
Cytat
Associative array of POST values

http://www.php.net/manual/pl/function.http-post-fields.php
Czyli ni wałka przesłać tych danych sad.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Jeśli przesyłałem dane curlem to i tak musiałem stworzyć ciąg bo tablicy nigdy mi nie przyjmował.

Tutaj masz coś co może pomoże: http://pl2.php.net/http_build_query


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
Athlan
post
Post #3





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Czytamy (http://php.net/http):

Cytat
Wstęp

Te funkcje pozwalają operować na danych wysyłanych do przeglądarki internetowej, bezpośrednio na poziomie protokołu HTTP.
Wymagania

Do zbudowania tego rozszerzenia nie są wymagane żadne zewnętrzne biblioteki.
Instalacja

By używać tych funkcji, nie trzeba niczego instalować. Są one częścią jądra PHP.
Konfiguracja uruchomieniowa

To rozszerzenie nie definiuje posiada żadnych dyrektyw konfiguracyjnych w pliku php.ini.


Wchodzimy w specyfikację funkcji: http://www.php.net/manual/pl/function.http-get.php

I czytamy:
Cytat
PECL pecl_http:0.1.0-1.4.1


Dobra, nie trzeba nic instalować ale jednak trzeba. No to łat da fak? Nie przejmuąc się czytamy:

Cytat
Fatal error: Call to undefined function http_post_data() in


Co Wy na to snitch.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
qqrq
post
Post #4





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Dżizas, i po co tak kombinujesz? Chcesz przesłać jakąś tablicę wielowymiarową POST-em, czy GET-em (nawey niekoniecznie przy pomocy cURL-a), to traktujesz ją serialize + urlencode i wpychasz do zmiennej POST lub GET.

Ten post edytował qqrq 25.09.2007, 22:34:51


--------------------
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #5





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Z komentarzy do curl_setopt" title="Zobacz w manualu PHP" target="_manual
<?php
function data_encode($data, $keyprefix = "", $keypostfix = "") {
assert( is_array($data) );
$vars=null;
foreach($data as $key=>$value) {
if(is_array($value)) $vars .= data_encode($value, $keyprefix.$key.$keypostfix.urlencode("["), urlencode("]"));
else $vars .= $keyprefix.$key.$keypostfix."=".urlencode($value)."&";
}
return $vars;
}

curl_setopt($ch, CURLOPT_POSTFIELDS, substr(data_encode($_POST), 0, -1) );

?>


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Athlan
post
Post #6





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Użyłem serialize i base64. Wszystko ładnie śmiga smile.gif

Pozdrawiam


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 02:51