AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy und PHP-Post

Ein Thema von halinchen · begonnen am 9. Jul 2007 · letzter Beitrag vom 10. Jul 2007
Antwort Antwort
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#1

Indy und PHP-Post

  Alt 9. Jul 2007, 17:27
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']";
?>
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Indy und PHP-Post

  Alt 9. Jul 2007, 18:17
Der Param-String ist genauso aufgebaut wie der Query-String:
Code:
foo=bar&bar=foo&zyx=1
Das Ganze muesste als Parameter fuer die Post-Methode reinkommen, hab aber grad keine Indys zur Hand.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
m.wollert

Registriert seit: 18. Aug 2003
Ort: Heilbronn
92 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Indy und PHP-Post

  Alt 9. Jul 2007, 19:27
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:
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;
Grüße
Michael
Michael
*Im Auftrag ewiger Jugend und Glückseligkeit*
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Indy und PHP-Post

  Alt 9. Jul 2007, 19:43
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;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Indy und PHP-Post

  Alt 10. Jul 2007, 10:24
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!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz