Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Parameterübergabe an ein PHP-Skript klappt nicht (https://www.delphipraxis.net/16586-parameteruebergabe-ein-php-skript-klappt-nicht.html)

TStringlist 19. Feb 2004 16:38


Parameterübergabe an ein PHP-Skript klappt nicht
 
Hallo, ich wollte mal kurz (auch gemäß dieses Threads) eine PHP-basierende Email erzeugen. Leider aber scheint das dann Script-mäßig irgendwie an der Parameterübergabe zu scheitern. Vielleicht sieht ja jemand, wie das Skript hier diesbezüglich richtig formuliert aussehen müsste.


Hier mal kurz die Prog-Zeilen mit denen ich das Ganze zur php-Seite sende:
Code:
  data := TIdMultiPartFormDataStream.Create;
  try
    data.AddFormField('an', 'xxxx-yyyy@web.de');
    data.AddFormField('betreff', 'jo funktioniert');
    data.AddFormField('text', 'Hallo, test erfolgreich');

    Memo1.Lines.Text := IdHTTP1.Post('http://mitglied.lycos.de/zzzz/test.php', data);
  finally
    data.Free;
  end;

Und hier die u.a. bisher versuchten Scripte:

<?php
mail("$an", "$betreff", "$text");
?>

..hierauf gab's leider keinerlei Reaktion, dh. es wurde kein Email erzeugt.


Dann habe ich es auch mal mit dieser $_Get -Funktion versucht.

<?php
mail($_Get("an"), $_Get("betreff"), $_Get("text"));
?>

..zurückgeschickter Kommentar (in Memo1.Lines.Text):


Fatal error: Call to undefined function: () in /data/members/free/tripod/de/f/e/l/feldhecke/htdocs/test.php on line 2


Eigene Bemerkung: wahrscheinlich meint er hier die $_Get() -Funktion, oder?


Mit Konstanten:

<?php
mail("xxx-yyy@web.de", "php-mail", "aber nur mit Konstanten");
?>

..funktioniert das mail-Versenden allerdings, also müsste es prinzipiell doch irgendwie gehen:


Frage nochmal: Wie müsste das Skript aussehen, um dass unter den Bedingungen (= oben benutzte IdHTTP1.Post-Methode) die Parameterübergabe zur php-mail-Funktion klappt?

DataCool 19. Feb 2004 23:09

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
Hi,

ich weiß wie's richtig geht, aber gedult bis morgen, meine Frau ruft mich ins Bett :duck:

Gruß Data

Synonym 19. Feb 2004 23:12

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
das php script müsste so richig sein:

Code:
mail("$von","$betreff","
$text",
"From: $von
Content-Type: text/html");
gruß

synonym

TStringlist 19. Feb 2004 23:13

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
das hatte ich schon versucht, leider vergebens. Habe es auch schnell eben nochmal zusätzlich getestet - nochmal ohne Erfolg. Eine Mail wird leider nicht abgeschickt bzw. empfangen.

Pseudemys Nelsoni 19. Feb 2004 23:27

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
hi,

wieso benutzt du $_Get wenn du POST benutzt?

soweit ich weiss müsste es eher so aussehen:

Code:
<?php
  mail($_POST["an"], $_POST["betreff"], $_POST["text"]);
?>

DataCool 19. Feb 2004 23:27

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
Hi,

ach was soll's muss Frau kurz warten *g

Dein Name ist die Lösung !!!

Verwende eine StringList für die Parameter :

Code:
   strLParams := TStringList.Create;
   try
      strLParams.Add('an=xxxx-yyyy@web.de');
      strLParams.Add('betreff=jo funktionert');
      strLParams.Add('test=Hallo, Test erfolgreich');
      try
         sReply := HttpCon.Post(sReq,strLParams);
      except
         sReply := '';
      end;
         Memo1.Lines.Text := IdHTTP1.Post('http://mitglied.lycos.de/zzzz/test.php', strLParam);
   finally
      strLParams.free;
   end;
Im PHP-Script fragst Du die Werte mit :

$HTTP_POST_VARS["an"]
$HTTP_POST_VARS["betreff"] u.
$HTTP_POST_VARS["text"] ab.

Gruß Data

TStringlist 19. Feb 2004 23:43

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
@Pseudemys Nelsoni

Das mit $_POST hatte ich auch schon versucht, ebenso mit $_REQUEST u. $_SESSION - ging leider alles nicht.

@DataCool

Auf die .post-Methode mit TStrings habe ich zum Schluss auch schon so ein bisschen geschielt.

Wie allerdings kommst du auf folgendes (bzw. was soll das bezwecken?):

Code:
  try
     sReply := HttpCon.Post(sReq,strLParams);
  except
     sReply := '';
  end;
Also ohne dieses Codesequenz (die habe ich jetzt einfach mal weggelassen) wird leider auch keine Email abgeschickt. Bei diesem dann in etwa so aussehenden Skript:

<?php
echo $_HTTP_POST_VARS['an'];
mail($_HTTP_POST_VARS['an'], $_HTTP_POST_VARS['betreff'], $_HTTP_POST_VARS['text']);
?>

...gibt's leider auch keine Ausgabe von 'an', also dürfte auch hier die Variablenübergabe nicht so ganz klappen ...es sei denn, dieses HttpCon.Post() wird's noch irgendwie richten!?

TStringlist 20. Feb 2004 00:19

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
@DataCool

SUUUUPER, es geht doch!!!

Ich hatte mich vor lauter $_GET, $_Post, $_REQUEST u. $_SESSION's vorhin nur noch schnell dahingehend 'überreden' lassen, anstelle von $HTTP_POST_VARS ebenfalls gleich $_HTTP_POST_VARS zu schreiben. Und das ging natürlich nicht. Nachdem ich das korrigiert hatte, klappte es perfekt.


Also, allerbesten DANK nochmal!!!

Wadim 29. Feb 2004 10:23

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
Zitat:

Zitat von DataCool
Hi,

ach was soll's muss Frau kurz warten *g

Dein Name ist die Lösung !!!

Verwende eine StringList für die Parameter :

Code:
   strLParams := TStringList.Create;
   try
      strLParams.Add('an=xxxx-yyyy@web.de');
      strLParams.Add('betreff=jo funktionert');
      strLParams.Add('test=Hallo, Test erfolgreich');
      try
         sReply := HttpCon.Post(sReq,strLParams);
      except
         sReply := '';
      end;
         Memo1.Lines.Text := IdHTTP1.Post('http://mitglied.lycos.de/zzzz/test.php', strLParam);
   finally
      strLParams.free;
   end;
Im PHP-Script fragst Du die Werte mit :

$HTTP_POST_VARS["an"]
$HTTP_POST_VARS["betreff"] u.
$HTTP_POST_VARS["text"] ab.

Gruß Data

bei mir sagt er das sReply ein undefinierter bezeichner ist??? - woran liegt das - mus man noch das davor definierten????

fkerber 29. Feb 2004 10:36

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
Hi!

Du musst sreply noch als String definieren. Bei den Variablen.

Ciao fkerber

Wadim 29. Feb 2004 10:43

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
Zitat:

Zitat von fkerber
Hi!

Du musst sreply noch als String definieren. Bei den Variablen.

Ciao fkerber

jo thx das geht schonmal, jetzt zeigt er mir nur noch an das HttpCon und sReq und strLParam undefinierte bezeichner sind, sind sReq und strLParam auch strings?? und was ist HttpCon ???

danke

fkerber 29. Feb 2004 10:47

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
Hi!

strLParam ist vom Typ TStringlist.
sReg weiß ich leider nicht, das ist aus diesem Quellcode nicht ersichtlich.

HTTPCon scheint eine Komponente zu sein, aber ich konnte sie nicht finden.


Ciao fkerber

TStringlist 29. Feb 2004 12:20

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
@Wadim

Code:
  try
     sReply := HttpCon.Post(sReq,strLParams);
  except
     sReply := '';
  end;
Diese Zeilen sind das Gleiche wie ich es hatte, nur halt eben mit try & except formuliert und (großteils) anderen Variablenamen:

sRepley = Memo1.Lines.Text = String
HttpCon = IdHttp1 = eine normale TIdHttp-Komponente
sReq = 'http://mitglied..../test.php' = ein normaler String mit Http-Adresse als Inhalt
(strLParams = strLParam = TStringlist)

DataCool 1. Mär 2004 13:32

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
Hi,

genau !

sReply = ein String der die Antwort des Servers enthält
HttpCon = ist meine HTTP-Connection vom Typ IdHttp(Register Indy)
sReq = String der als Request an den Server geschickt werden soll, also die URL
strLParams = Logischerweise eine StringList die alle Parameter incl Werte enthält, diese wird bei der Anfrage mit übergeben

Hab ich noch was vergessen ? Oder hat jemand noch ne Frage ?

Gruß Data

emsländer 18. Okt 2004 21:54

Re: Parameterübergabe an ein PHP-Skript klappt nicht
 
Und wie kann ich da jetzt noch eine Datei anhängen?

Gruss

EL


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 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