Jak przesłać ręcznie metodą POST dane do skryptu przetwarzającego formularze, PHP Skrypty


[PHP] Jak przesłać "ręcznie" metodą POST dane do skryptu przetwarzającego formularze?

0x01 graphic

Chcesz przesłać dane metodą POST do skryptu, bez korzystania z formularza.

0x01 graphic

O ile wysyłanie danych metodą GET jest stosunkowo proste, bo zmienne wystarczy dołączyć do adresu strony, to metoda POST działa zupełnie inaczej.

Metoda POST nie ma też ograniczeń w ilości przesłanych danych, co jest jej niewąpliwą zaletą i dlatego często służy ona do przesyłania danych z rozbudowanych formularzy do skryptów.

Aby przesłać do skryptu dane metodą POST nie trzeba jednak tworzyć formularza. Wystarczy odpowiednio spreparować nagłówki i przesłać zakodowane pary: zmienna=wartość. Zobacz jak to zrobić.

<?

$serwer = "www.jakisserwer.com";

$skrypt = "http://www.jakisserwer.com/katalog/skrypt.php";

$dane[] = "zmienna1=wartosc1";

$dane[] = "zmienna2=wartosc2";

$dane[] = "zmienna3=wartosc3";

for ($i=0;$i<count($dane);$i++) {

$p = explode("=",$dane[$i]);

$sciezka .= urlencode($p[0])."=".urlencode($p[1])."&";

}

$naglowek = "POST $skrypt HTTP/1.0\r\n";

$naglowek .= "Content-type: application/x-www-form-urlencoded\r\n";

$naglowek .= "Content-length: ".strlen($sciezka)."\r\n\r\n";

$f=fsockopen($serwer,80);

if ($f) {

fputs($f, "$naglowek$sciezka");

while (!feof($f)) echo fgets($f,1024);

fclose($f);

}

?>

Na początku trzeba zdefiniować nazwę serwera, na którym znajduje się skrypt i pełną ścieżkę do skryptu (URL). Następnie w tablicy $dane[] można umieścić wszystkie dane, które mają zostać przesłane do skryptu. Ważne jest aby umieścić znak równości pomiędzy zmienną i jej wartością.

Pętla for pobiera pary zmienna=wartość i przekształca je w zakodowany łańcuch znaków (kodowane są tylko znaki specjalne), gdzie każda para oddzielona jest symbolem &. Całość wyglšda podobnie jak w metodzie GET, z tym, że tutaj nie ma ograniczenia co do długości zmiennych.

Pozostało nam jeszcze przygotować nagłówek, również standardowy dla metody POST. Trzeba więc ustalić kodowanie (typ danych) jako x-www-form-urlencoded i określić długość przesyłanych danych, czyli Content-length.

Na koniec wystarczy przesłać dane do skryptu łącząc się z nim na porcie 80, czyli dokładnie tak samo jak przeglądarka. Niektóre serwery mogą korzystać z innych portów, więc wtedy trzeba numer 80 zmienić na właściwy port.

Jeżeli połączenie zostanie nawiązane skrypt przesyła dane. W pętli while() odczytywana jest zawartość strony i w skrypcie ma znaczenie informacyjne - ma sprawdzić jak przebiegła transmisja danych. W praktyce możesz usunąć ten zapis, jeżeli masz pewność, że skrypt działa poprawnie.



Wyszukiwarka

Podobne podstrony:
Jak odbierać dane pochodzące z różnych pól formularza, PHP Skrypty
jak przeslac dane z pol tekstowych do innych stron, PHP Skrypty
Jak przesłać mapę do urządzenia lub na kartę pamięci, Garmin nuvi
Jak wstawić do bazy danych kod PHP i potem wykonać go w momencie pobrania z bazy, PHP Skrypty
Jak zapisać do pliku zawartość tablicy, PHP Skrypty
Jak dopisać dane na początku pliku tekstowego, PHP Skrypty
Jak zabezpieczyć własne strony przed pobieraniem ich programami do ściągania całych witryn, PHP Skry
Jak przesłać dane z komórki na komputer i odwrotnie
Jak szybko przenieść zawartość pliku tekstowego do tabeli, PHP Skrypty
JAK PROSTO I SKUTECZNIE WYKORZYSTAĆ ARKUSZ KALKULACYJNY DO OBLICZENIA PARAMETRÓW PROSTEJ METODĄ N
Jak wysłać list do grup dyskusyjnych USENET, PHP Skrypty
Jak przekazać do skryptu parametry z linii poleceń, PHP Skrypty
dane, pseudodane, skrypt od 78 str do końca
mury dane do tematu
Metoda Ruchu Rliwa do zastosowania w kaywania przuozwijającego Weroniki Sherborne, metody pracy
Dane do symulacji dyszy Bedemanna
dane do ik

więcej podobnych podstron