Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wysłanie POSTA bez formularza
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Poczytałem sobie to.
Piszę w pliku try.php:
  1. <?php
  2. function doPost($uri,$postdata,$host){
  3.  $da = fsockopen($host, 80, $errno, $errstr);
  4.  if (!$da) {
  5.  echo "$errstr ($errno)<br/>n";
  6.  echo $da;
  7.  }
  8.  else {
  9.  $salida ="POST $uri HTTP/1.1rn";
  10.  $salida.="Host: $hostrn";
  11.  $salida.="User-Agent: php Scriptrn";
  12.  $salida.="Content-Type: application/x-www-form-urlencodedrn";
  13.  $salida.="Content-Length: ".strlen($postdata)."rn";
  14.  $salida.="Connection: closernrn";
  15.  $salida.=$postdata;
  16.  fwrite($da, $salida);
  17.  while (!feof($da))
  18.  $response.=fgets($da, 128);
  19.  $response=split("rnrn",$response);
  20.  $header=$response[0];
  21.  $responsecontent=$response[1];
  22.  if(!(strpos($header,"Transfer-Encoding: chunked")===false)){
  23.  $aux=split("rn",$responsecontent);
  24.  for($i=0;$i<count($aux);$i++)
  25.  if($i==|| ($i%2==0))
  26.  $aux[$i]="";
  27.  $responsecontent=implode("",$aux);
  28.  }//if
  29.  return chop($responsecontent);
  30.  }//else
  31.  }//function-doPost
  32.  doPost('catch.php','dana1=tomek','localhost')
  33. ?>

oraz plik catch.php:
  1. <?
  2. print_r($_POST);
  3. ?>

I nie działa, nie wyświetla żadnych danych :/
Co robię źle?
Chciałbym wysłać do serwera zewnętrznego dane postem....

Dzięki


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
$salida.="User-Agent: php Script\r\n";

Może przez to?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
batman
post
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




A nie możesz użyć cURL ?


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
NetJaro
post
Post #4





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Do takich zabaw polecam serdecznie cURL. Wspaniałe i proste narzędzie ;-)
I sądze, że szybciej byś dostał odpowiedź na problem związany z nim niż fsockopen.. tak mi się wydaje smile.gif
Go to the top of the page
+Quote Post
TomASS
post
Post #5





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cytat
Może przez to?

Niestety nie.

Cytat
A nie możesz użyć cURL ?

Cytat
Do takich zabaw polecam serdecznie cURL.

Ale po co zaraz do tak prostej rzeczy (tak mi się wydaje) zaraz wyciągać jakieś potężne biblioteki?

=================================================================
Rozwiązanie:

  1. <?php
  2. $url = 'localhost';
  3.  $fp = fsockopen($url, 80);
  4.  $out = "POST /BC/catch.php HTTP/1.0rn";
  5.  $out .= "Host: $urlrn";
  6.  $out .= "Content-Type: application/x-www-form-urlencodedrn";
  7.  $out .= "Content-Length:8rn";
  8.  $out .= "rn";
  9.  $out .= "system=3rn";
  10.  $out .= "Connection: Closernrn";//
  11.  fwrite($fp, $out);
  12.  while (!feof($fp))
  13.  {
  14. $end .= fgets($fp, 128);
  15.  }
  16.  fclose($fp);
  17.  echo $end;
  18. ?>


Nie trzeba było CURLA tongue.gif

Ciekawi mnie tylko, czy ten sposób ma jakieś ograniczenia ? Tzn czy z zewnętrznym serwerem uda mi się połączyć ?

Ten post edytował TomASS 14.10.2006, 09:35:24


--------------------
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Jeśli nie chcesz używać cURL, to obok fsockopen jest jeszcze AJAX. Też możesz wysłać posta do jakiegoś skryptu bez potrzeby submitowania formularza.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jeśli nie chcesz używać cURL, to obok fsockopen jest jeszcze AJAX.

TomASS chce rozwiązanie czysto w php, bez angażowania JS.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
TomASS
post
Post #8





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cytat
Cytat
Jeśli nie chcesz używać cURL, to obok fsockopen jest jeszcze AJAX.


TomASS chce rozwiązanie czysto w php, bez angażowania JS.

Dokładnie!


--------------------
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 - 03:57