Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Nagłówek HTTP
Forum PHP.pl > Forum > Przedszkole
-lowcasz-
Mam potrzebę wysłać dane bezpośrednio ze skryptu do skryptu za pośrednictwem metody POST.
Jest formularz który wysyła odpowiednie dane do skryptu i to działa bez zarzutów, rownież metodą POST, następnie dane są obrabiane wykonywane odpowiednie zapytania SQL i przy okazji wysyłane nagłówki wraz z POST, całość jest buforowana.
Problem w tym, że adres się zgadza, sprawdzałem, czy zmienne są dobrze generowane, a mimo wszystko przekierowywuje mnie na stronę błędu serwera: http://www.ugu.pl/error/err500.html. Nie wiem, w czym jest problem i proszę o pomoc, tak wygląda fragment kodu gdzie wysyłam nagłówki:
  1. //headers: //-------------------------------
  2. echo $host = HOST;
  3. echo $path = "/ogloszenia/$site";
  4. $data = "message=$result";
  5. $data = urlencode($data);
  6.  
  7. header("POST $path HTTP/1.1\r\n");
  8. header("Host: $host\r\n");
  9. header("Content-type: application/x-www-form-urlencoded\r\n");
  10. header("Content-length: " . strlen($data) . "\r\n");
  11. header("Connection: close\r\n\r\n");
  12. header($data);
  13.  
  14. //----------------------------------------


Jeszcze korzystając z okazji chciałem się zapytać jak to jest z zapytaniami mysql, podczas buforowania wyjścia.

Z góry dziękuję za pomoc. smile.gif
jaslanin
w ten sposób nie prześlesz danych POST do innego skryptu

funkcja header służy do ustawiana nagłówków odpowiedzi na zapytania HTTP. Ty natomiast nie chcesz odpowiadać na zapytanie do aktualnego skryptu, tylko wykonać nowe zapytanie typu POST do innego skryptu.

By to zrobić zainteresuj się funkcjami fsockopen, curl, możesz też szukać w google: php send post request
lowcasz
Cytat(jaslanin @ 21.03.2012, 21:30:11 ) *
w ten sposób nie prześlesz danych POST do innego skryptu

funkcja header służy do ustawiana nagłówków odpowiedzi na zapytania HTTP. Ty natomiast nie chcesz odpowiadać na zapytanie do aktualnego skryptu, tylko wykonać nowe zapytanie typu POST do innego skryptu.

By to zrobić zainteresuj się funkcjami fsockopen, curl, możesz też szukać w google: php send post request

Robiłem cURL'em to nie było żadnego efektu, ani nic nie przechodziło, ani nie wywalało błędu.
Po drugie chyba mogę wysłać post nagłówkiem, skoro za jego pomocą robię przekierowania, poprostu je zwraca
  1. header('Location: adres');
i ztego co wiem header służy poprostu do ich wysyłania, a czasami zdaży sie, że dostanie odpowiedź np. właśnie redirect. Wolałbym uniknąć czegoś do czego jest potrzebna osobna biblioteka, lub moduł, ale niech będzie cURL jeśli jest to zbyt trudne, może ktoś pomóc? Bo jeśli chodzi o googlowanie to juz naprawdę sporo przejrzałem, napewno ktoś jest w stanie sie szybko podzielić jak wysyła POST. Jest to ogólne zagadnienie, a ciężkie do znalezienia, przynajmniej to co znalazłem nie działa.

Z góry dziekuję, za pomoc.
jaslanin
Odnośnie potwierdzenia tego co piszę to:

http://stackoverflow.com/questions/653090/...header-function
google: php header send post

Odnośnie header location to możesz przesłać tak dane GET np.

  1. header('Location:myresults.php?sort=up&page=2');


+++ Dodam jeszcze że są dwa rodzaje nagłówków, nagłówki zapytania i odpowiedzi. I obu tym rodzajów nagłówków "wolno" różne rzeczy. Tu masz pełną listę:http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

header służy do wysyłania nagłówków odpowiedzi, popracuj z listą i zobaczysz że w nagłówku odpowiedzi nie może być nagłówka Content-type

odnośnie rozwiązania Twojego problemu, to zainteresuj się fsockopen, curl, ewentualnie szukaj w google: php send post request

albo załóż temat na forum i opisz jakie dane chcesz przesłać i w czym masz problemy.
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.