Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FSOCKOPEN i formularz wysyłany POST`em
Forum PHP.pl > Forum > PHP
anonim1133
Witam, otóż kombinuję ostatnio troche z wysłaniem "formularza" bezpośrednio do servera, z pominięciem użycia formularza ;-)
mam taki kod:
  1. <?php
  2. $form[poleformularza] ='zawartosc pola';
  3. $form[drugiepole]='zawartosc tego pola';
  4. $boundary = "------------cJWpIkYoIpZqt1t0PfqBlh";
  5.  // składamy nagłówek
  6. $header = "POST / HTTP/1.0rn";
  7. $header .= "Content-Type: multipart/form-data; boundary=$boundaryrn";
  8. // Dodajemy pola formularza z tablicy $form
  9.  foreach($form AS $index => $value){
  10.  $data .="$boundaryrn";
  11.  $data .= "Content-Disposition: form-data; name="".$index.""rn";
  12.  $data .= $value."rn";
  13.  }
  14.  $header .= "Content-length: " . strlen($data) . "rn";
  15.  $data .="$boundaryrn";
  16.  $fp = fsockopen('127.0.0.1', 80);
  17.  fputs($fp, $header.$data."rnrn");
  18.  while (!feof($fp)) {
  19. $stronka .= fgets($fp, 128);
  20.  }
  21.  fclose($fp);
  22. ?>

wszystko jest niby ładnie pięknie i w ogóle, lecz w rezultacie dostaję:
Kod
HTTP/1.1 400 Bad Request
Date: Tue, 20 Feb 2007 16:26:01 GMT
Server: Apache/1.3.33 (Unix) mod_gzip/1.3.19.1a
Connection: close
Content-Type: text/html; charset=iso-8859-1



Bad Request

Your browser sent a request that this server could not understand.


Request header field is missing colon separator.


------------cJWpIkYoIpZqt1t0PfqBlh


i z tym błędem poprostu nie potrafie se poradzić, więc zwracam się z prośbą o pomoc, z góry dzięki i liczę na sensowne odpowiedzi biggrin.gif
starach
Zamiast fsockopen() używaj CURL'a -> http://pl.php.net/manual/pl/ref.curl.php
anonim1133
dzieki za odp, kombinuje z CURL`em lecz dalej mam ten blad... pokombinuje jeszcze moze wrewszcie sie uda?;-)
Bless
Kicok
Myślę, że jak zaczniesz używać: "\r\n" zamiast: "rn" to niektóre twoje problemy znikną ;]
anonim1133
używam \r\n z tym że przy zapisywaniu postu się po prostu popsuło?
Kicok
W takim razie zamiast wysyłać danych wyświetl je sobie w przeglądarce. Może ci gdzieś brakuje jakiegoś "entera" (np. między nagłówkami a zawartością)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.