IdHTTP i wysyłanie danych metodą post

0

Witam,
według tego artykułu HTTP piszę funkcję która przez komponent IdHTTP przekaże do skryptu php trzy zmienne metodą post, i odbierze wynik. Wszystko jest przygotowane według wzoru, ale skrypt php nie dostaje danych postem.

    Input.WriteString(Format('id=%s&pass=%s&token=%s', [id, pass, NewToken]));
    Logger.Post(LoggerAddress,Input,Output);
    ShowMessage(Output.DataString);

Logger to oczywiście IdHTTP.
Danych teoretycznie wysłanych drogą post nie mogę nigdzie odnaleźć, w żadnej z tablic print_r($_POST), print_r($_SERVER) itp...
na google ciężko coś znaleźć na ten temat, bo jak metoda POST to i oczywiście PHP...

0

co dostajesz w output?

2

Zrób na podstawie kodu poniżej ale podejrzewam, że Twój kod nie działa tylko dlatego bo nie ustawiasz ContentType.
Inne potencjalne przyczyny: tak jak poniżej najpierw GET po to by pobrać ewentualnie potrzebne ciacha, nie ustawienie Referer (niektóre strony sprawdzają).

procedure TForm1.Button1Click(Sender: TObject);
const
  USER_AGENT = 'Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0';
  OGAME_URL = 'http://ogame.pl/';
  SERV_IO_LOGIN_URL = 'http://uni109.ogame.pl/game/reg/login2.php';
var
  sl: TStringList;

begin
IdHTTP1.HandleRedirects:= True;
IdHTTP1.Request.UserAgent:= USER_AGENT;
IdHTTP1.Get(OGAME_URL);
IdHTTP1.Request.Referer:= OGAME_URL;
IdHTTP1.Request.ContentType:= 'application/x-www-form-urlencoded';
sl:= TStringList.Create;
try
sl.Add('uni_id=');
sl.Add('kid=');
sl.Add('v=2');
sl.Add('is_utf8=0');
sl.Add('uni_url=uni109.ogame.pl');
sl.Add('login=test01');
sl.Add('pass=tester01');
Memo1.Text:= IdHTTP1.Post(SERV_IO_LOGIN_URL, sl);
finally
sl.Free;
end;
end;
0

Nie rozumiem czemu to musi być metoda post. Przecież i tak nikt nie zobaczy adresu, użyj get.

var S: TStringStream;
begin
  S := TStringStream.Create('');
  idHTTP1.GET('http://mojastrona.pl/skrypt.php?zmienna1=wartosc1&zmienna2=wartosc2', S);
  //Tutaj możesz odczytać te dane, np:
  Memo1.Text := S.DataString;
  S.Free;
end
0

w output mam dokładnie to co bym dostał bez żadnych danych w input ;) odbiera normalnie, mam kod html.
Wystarczyło że dodałem linię z ContentType i ruszyło ;) głupio mi aż teraz bo przyjrzałem się w artykule i jest tam to uwzględnione.

1 użytkowników online, w tym zalogowanych: 0, gości: 1