- PHP


Przesyłanie zmiennych metodą POST - CURL


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.

<?php
foreach($_POST as $key=>$val)echo "<b>$key:  $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. 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:

<?php
$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);
?>

Jak 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 wskazać, że będziemy przesyłać, a potem wskażemy te dane.

<?php
$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: '.$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.


InformacjeRaportuj | Drukuj

Data dodania: 02-10-2017 11:44Autor:admin
Ilość wyświetleń:651Komentarzy: 0
Komentarze
Brak komentarzy.
Dodaj komentarz
Zaloguj się, żeby móc dodawać komentarze.