Werte von Delphi an ein php-Script übergeben

Da ich diese Arbeitsweise in letzter Zeit ziemlich häufig genutzt habe, möchte ich euch in diesem Blogbeitrag nun zeigen, wie man in Delphi Daten aus einem Formular an ein php-Script übergeben kann.
In diesem Blog werde ich die übergebenen Daten lediglich durch das php-script in Delphi ausgeben lassen. Was ihr durch das php-script mit den übergebenen Daten machen lasst bleibt euch überlassen. Ich nutze es z.B. um die Daten nach Prüfung direkt in eine mySQL-Datenbank zu speichern. Das php-script gibt dann den Status zurück ob die Werte in die Datenbank eingetragen wurden.

Fangen wir an mit dem php-script. Dieses nenne ich test.php und lade es auf einen Server im Internet. Wie bereits gesagt, werden nur die Daten die durch Delphi übergeben wurden wieder ausgegeben.

Datei test.php

<?php

if ($_POST['MM_SUBMIT'] == 'Absenden')
{

  echo "Ich bin die Datei test.php und habe folgene Daten erhalten: ";
  echo $_POST['Vorname']." ";
  echo $_POST['Nachname'].", ";
  echo $_POST['Strasse'].", ";
  echo $_POST['PLZ'].", ";
  echo $_POST['Ort'];

  exit;
}
?>

Als nächstes erstellen wir ein neues Projekt in Delphi und ziehen die Komponente mit dem Namen idHTTP aus der Komponentenpalette „Indy-Clients“ auf das Formular. Außerdem benötigen wir 5 Edit-Komponenten, 5 Labels und einen Button zum Senden der Daten an das php-script.

Nun tragen wir noch die unit „WinInet“ unter uses ein und deklarieren unsere procedure „sendData2php“ als privat.

uses
  WinInet;

private
    procedure sendData2php;

//Procedure zum senden der Daten an das php-script
procedure TfKundendaten.sendData2php;
var
  Werte : TStringStream;
  s: string;
begin
  if  InternetGetConnectedState(nil, 0) then
  begin
    Werte := TStringStream.create('');
    IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';

    Werte.WriteString('Vorname='+edVorname.Text + '&');
    Werte.WriteString('Nachname='+edNachname.Text + '&');
    Werte.WriteString('Strasse='+edStrasse.Text+'&');
    Werte.WriteString('PLZ='+edPLZ.text + '&');
    Werte.WriteString('Ort='+edOrt.Text + '&');
    Werte.WriteString('MM_SUBMIT=Absenden');
    try
      s := IdHttp1.Post('http://www.home4developers.de/test.php', Werte);
      ShowMessage(s);
    except
      on E: Exception do showmessage('Fehler: ' + E.Message);
    end;
  end else ShowMessage('Keine Verbindung zum Internet!');
end;

//Button zum Senden der Daten aus dem Formular an das php-script.
procedure TfKundendaten.btnSaveClick(Sender: TObject);
begin
  sendData2php
end;

Weitere interessante Tipps zu Delphi finden Sie auch im Techfacts Forum für Programmierungen

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast. nefilim3006 ist auch bei Google+ vertreten

Kommentare geschlossen.