[CURL]Przesylanie zmiennych metodą POST
Istnieje kilka metod przesłania zmiennych metodą post używając PHP. Wybrałem tu jedną z prostszych i wygodniejszych metod. Użyje biblioteki CURL, aby nawiązać połączenie z serwerem i wysłać odpowiednie nagłówki i dane.
Co bedzie robil nasz skrypt. Po prostu, będzie łączył się z serwerem i skryptem testującym, prześle dane POST, które następnie zostaną wyświetlone na stronie. Poniżej przedstawiam skrypt testujący.
![]()
foreach($_POST as $key=>$val)echo "<b>$key: </b> $val<br />";
![]()
Co to jest CURL?
CURL jest to biblioteka, która umożliwa łączenie się z serwerami np. HTTP i FTP. Dzięki temu, że PHP zawiera odpowiedni interfejs do łączenia się z tą biblioteką, możemy wykorzystywać swobodnie jej możliwości. Jak za tem zacząć?
PHP i cUrl
Większość czynności związane z wykorzystaniem biblioteki curl rozpoczynamy od wywołania funkcji curl_init. Funkcja ta zwraca typ resource - identyfikator połączenia. Całość zamkniemy używając curl_close. W naszym przykładnie wykorzystamy jeszcze tylko dwie inne funkcje: curl_setopt do ustalernia opcji połączenia oraz cur_exec do połączenia. Zaczynamy od takigeo zatem kodu:
![]()
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://www.compzone.org/skrypty/test_post.php');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($c);
curl_close($c);
![]()
ak widać w pierwszej wywołaniu funkcji curl_setopt zmieniamy adres url. W drugim ustalamy, że strona nie ma zostać wyświetlona po wywołaniu curl_exec, tylko ma zostać zwrucona do zmiennej ($page).
Jak zatem przekazać dane POST za pomocą cURL? Najpier powinniśmy za pomocą curl_setopt wsakzac, że będziemy przesyłać, a potem wskażemy te dane.
![]()
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://www.compzone.org/skrypty/test_post.php');
curl_setopt($c, CURLOPT_POST, 1);//przesylamy metodą post
curl_setopt($c, CURLOPT_POSTFIELDS, 'name=Kodie&position=Head%20developer'); //dane do wyslania
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($c);
curl_close($c);
echo 'Wynik: <br>'.$page;
![]()
Dane przesylane są w takim formacie nazwa_pola=wartosc i rozdzielane są znakiem &
Zakończenie
Mam nadzieje, iż ten arykuł przyda się wielu ludziom i wyjaśni kilka kwestii.










