Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] redirect z danymi POST
Cezar708
post
Post #1





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Cześć,

mam skrypt pod lokalizacją: http://localhost/home.php w pliku home.php zrobić redirect na localizację http://innyserwer/odbierz.php ale jednocześnie dane muszą być przesłane POSTem.

próbowałem następującej metody:

  1. <?php
  2. function redirectByPOSTMethod($url, $datas) {
  3.    preg_match('///(w+)(/.+)/', $url, $m);
  4.    $host = $m[1];
  5.    $path = $m[2];
  6.    $data = urlencode(http_build_query($datas));
  7.    header("POST $path HTTP/1.1r\n");
  8.    header("Host: $hostr\n" );
  9.    header("Content-type: application/x-www-form-urlencodedr\n");
  10.    header("Content-length: " . strlen($data) . "r\n");
  11.    header("Connection: closer\nr\n");
  12.    header($data);
  13.  }
  14.  
  15. redirectByPOSTMethod('http://innyserwer/odbierz.php', array('asdf'=>'1234', 'asdf1234'=>'asf'));
  16. ?>


niestety firefox zamiast przejść na serwer próbuje zapisać plik :|

co zrobić aby nastąpił normalny redirect...

Pozdrawiam
Cezar708
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Pytanie tylko - po co? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Załóżmy, że chcesz zobaczyć jakie dane user wysyła POST'em i gdzieś je zapisać. Ja bym zrobił to zupełnie inaczej niż Ty zakładasz:
1. Mam formularz z action ustawionym na localhost i target'em na ramkę (oczywiście w dokumencie mam ukrytą ramkę iframe, 1x1px).
2. Klikam submit formularza - w mojej ramce ładuje się localhost - odczytuję sobie na serwerze wysłane dane
3. Po odczytaniu potrzebnych danych odbieram w ramce wygenerowany na serwerze kod JS
4. Kod JS w nadrzędnej ramce znajduje formularz (np. po ID), zmienia mu action na google.pl i wywołuje na nim metodę submit().
5. Tym sposobem masz dane POST wysłane na swój serwer, a user jest na stronie google.pl

Ew. można to zrobić bardziej elegancko - wysyłać dane na Twój serwer za pomocą Ajax. Ale w obu przypadkach user musi mieć obsługę JS. No ale nie oszukujmy się - 99% użytkowników ją ma.

Proste jak barszcz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował sowiq 24.03.2009, 10:52:54
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 19:43