![]() |
Indy und PHP-Post
Hi!
Ich möchte eine Highscore mit PHP machen. Das Script soll die Daten empfangen. Im Moment hänge ich die Daten an die Url dran. (test.php?name=xxx&punkte=xxx&schlüssel=xxx) Ich möchte das aber über die POST-Methode machen, da bei der Get-Methode der Platz begrenzt ist. Wenn ich Indy 10 nutze gibt es kein Methode, die irgentwie auf Post schließen lässt. Mit der Forumsuche habe ich immer nur idHTTP.Post(...) gefunden. Was muss ich in der 10er Version nehmen? Wenn ich folgenden Code habe, was muss ich dann Indy übergeben? Ich schätze mal einen StringStream, aber wie genau muss der Inhalt dann sein? So etwa? param1=xxx param2=xxx ... paramn=xxx
Code:
<?php
echo "$_POST['param1']"; echo "$_POST['param2']"; echo "$_POST['paramn']"; ?> |
Re: Indy und PHP-Post
Der Param-String ist genauso aufgebaut wie der Query-String:
Code:
Das Ganze muesste als Parameter fuer die Post-Methode reinkommen, hab aber grad keine Indys zur Hand.
foo=bar&bar=foo&zyx=1
Greetz alcaeus |
Re: Indy und PHP-Post
Hallo halinchen,
ich habe dies so gelöst - aber achtung, ich lade in meinem Fall eine Datei hoch. Du möchtest vermutlich nur einzelne Felder hinzufügen. Einfach ein wenig reinarbeiten und anpassen. (ja... es wäre auch mit nicht so viel drum herum gegangen ;) War eine quick and dirty-Implementierung Ich hoffe geholfen zu haben.
Delphi-Quellcode:
Grüße
var
FormDataStream : TIdMultiPartFormDataStream; StringStream: TStringStream; PostVars: TStringList; FileStream: TFileStream; cUrl : string; cFilename : string; nIdx : integer; cOperation, cValue : string; IdHTTP : TIdHTTP; begin IdHTTP := CreateIdHTTP; cFilename := FFilename; PostVars := TStringList.Create; StringStream := TStringStream.Create(''); FileStream := TFileStream.Create(cFilename, fmOpenRead or fmShareDenyWrite); FormDataStream := TIdMultiPartFormDataStream.Create; try StringStream.CopyFrom(FileStream, FileStream.Size); // cUrl := 'http://ltwollert/plannerCentralOl/upload_test.php'; cUrl := FUploadURL; FormDataStream.AddFile('file', cFilename, 'multipart/form-data'); //FormDataStream.AddFormField('description', Filename); cOperation := 'operation'; cValue := 'appts'; FormDataStream.AddFormField(cOperation, cValue); //FormDataStream.AddFormField('operation', 'appts'); FHttpResult := IdHTTP.Post(cUrl, FormDataStream);; finally StringStream.Free; PostVars.Free; FileStream.Free; FormDataStream.Free; end; end; Michael |
Re: Indy und PHP-Post
Je nach indy-version ist es ganz einfach
Delphi-Quellcode:
var
lparams: TStringList; begin lparams := TStringList.Create(); try lparams.Add('param1=wert1'); lparams.Add('param2=wert2'); lparams.Add('param3=wert3'); Ausgabe := Http1.Post(YourUrl, lparams); finally lParams.Free; end; end; |
Re: Indy und PHP-Post
Also er kennt den Befehl Post doch. Aber er wird nicht angezeigt wenn ich idHTTP1. eingebe. (Ich meine in dieser Liste die dann erscheint.)
Danke für eure Hilfe! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz