AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi POST an PHP geht nicht Wieso

POST an PHP geht nicht Wieso

Ein Thema von p.sprick · begonnen am 11. Aug 2009 · letzter Beitrag vom 12. Aug 2009
Antwort Antwort
p.sprick

Registriert seit: 29. Jan 2009
20 Beiträge
 
#1

POST an PHP geht nicht Wieso

  Alt 11. Aug 2009, 12:56
Hallo Leute,
ich moechte per idHTTP.Post daten an ein PHP übergeben.
Es kommt aber nur

Test
Undefined index: email in test1.phpon line 3

Wen ich mit ISSET($_POST['email') arbeite kommt nur

Test

Aber wieso. Wo liegt der Fehler????

Gruss Paul

Hier der Quelltext:

Delphi-Quellcode:
  PostStrings: TStringList; //Zusammengesetze Post-Daten
  ResponseStream:TStringStream;//Ausgabe der Aufgerufenen Seite
  ausgabe:String; //Ausgabe der aufgerufenen Seite als String
  zeile:String; //Zum zeilenweisen Ausgeben der Rückgabe der Aufgerufenen Seite benutzte Zwischenvariable
  i:Integer; //Zähler für die For-Schleife
begin
  ResponseStream:=TStringStream.Create('');//Rückgabe-Stream erstellen
  PostStrings := TStringList.Create; //Post-Daten-StringList erstellen
  try
    PostStrings.Add('email=test@test.de'); //Post-Daten in die StringList eintragen
    try
      idHTTP.Post('http://ps-edv-online.de/test1.php', PostStrings,Responsestream);//Datei abrufen
      ausgabe:=ResponseStream.DataString; //Ausbage-Sring die zurückgegebenen Daten zuweisen
      zeile:=''; //Zwischenvariable leeren
      for i:=1 to Length(ausgabe) do begin //For-Schleife zum formatieren der Ausgabe (Zeilenumbrüche korrekt darstellen)
        if (ausgabe[i]=#13) and (ausgabe[i+1]=#10) then begin //Bei Zeilenumbruch
          ResponseMemo.Lines.Add(zeile);
          zeile:='';
        end else if ausgabe[i]<>#10 Then zeile:=zeile+ausgabe[i];
      end;
      ResponseMemo.Lines.Add(zeile);
    except //Fehlerbehandlung
     on E: Exception do
       showmessage('Error encountered during POST: ' + E.Message);
    end;
  finally
    PostStrings.Free;
    ResponseStream.Free;
  end;
end;
test1.php

Delphi-Quellcode:
<?php
echo "test";
echo $_POST['email'];
?>
  Mit Zitat antworten Zitat
p.sprick

Registriert seit: 29. Jan 2009
20 Beiträge
 
#2

Re: POST an PHP geht nicht Wieso

  Alt 11. Aug 2009, 15:17
Hallo Leute,
ich habe mal ein bisschen was versucht.
Wenn ich
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
Setzte kann ich schon mal die Erste Variabel uebergeben.

Jetzt habe ich mit 2 Variabalen getestet also:

PostStrings.Add('email=test@test.de'); //Post-Daten in die StringList eintragen
PostStrings.Add('Name=testname');
PHP ANgepasst

Delphi-Quellcode:
<?php
echo "test";
echo $_POST['email'];
echo $_POST['Name'];
?>
Geht nicht wieder der Index Fehler:
Also habe ich alles in einem String gepackt

PostStrings.Add('email=test@test.de&Name=testname' );

Es geht! Das macht doch keinen Sinn wenn ich viele Parameter übergebe ist der String doch bals voll.
Wer weiss Rat?
Gruss Paul
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#3

Re: POST an PHP geht nicht Wieso

  Alt 11. Aug 2009, 15:42
Hallo,

gut, will ich mal etwas unter die Arme greifen:

Zitat von p.sprick:
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
Schonmal absolut richtig!

Zitat von p.sprick:
PostStrings.Add('email=test@test.de'); //Post-Daten in die StringList eintragen
PostStrings.Add('Name=testname');
Auch richtig.

Wenn ich das mache, und den Responsestream auswerte (.DataString), erhalte ich als Antwort von Deinem Server "test test@test.de testname" (ohne Leerzeichen).

Ich tippe daher darauf, daß Du eine ältere Indy Version einsetzt, wo noch irgendein Bug drin war. Aktualisiere doch mal die Indy Installation (hier im Forum suchen, gibt viele Infos darüber). Stichwort: "Fulgan Mirror" für die aktuelle Version.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: POST an PHP geht nicht Wieso

  Alt 11. Aug 2009, 17:17
Du kannst in die PHP-Seite auch mal ein
Code:
print_r($_POST); // oder print_r($_REQUEST);
einbauen, dann siehst du genau, was wie angekommen ist
  Mit Zitat antworten Zitat
p.sprick

Registriert seit: 29. Jan 2009
20 Beiträge
 
#5

Re: POST an PHP geht nicht Wieso

  Alt 12. Aug 2009, 12:37
Hallo Leute,
es lag an der Delphi Indy Komponente bei Delphi 6.
Ich habe jetzt die Indy 9er version installiert und Siehe da es läuft!
Ich kann jetzt:

add('email=mail@mail.de');
add('name=willi');

übergeben und es kommt beim php an!

Vielen Dank an alle!
Paul
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:04 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