Problem mit TNMHTTP::Get und Leerzeichen (war: Warum geht es nicht?)
-
void __fastcall TForm1::SendClick(TObject *Sender) { NMHTTP1->Port = 80; NMHTTP1->Get("http://mitglied.lycos.de/xxxxx/sendmail.php?Name="+Edit1->Text+"&Message="+Edit2->Text); Memo1->Text = NMHTTP1->Body; }
Oben seht ihr.
Wenn ich im Feld von Edit1 oder Edit2 nur einen String schreibe und sende , geht es. zB : Probe
aber wenn ich im Feld von denen 2 Strings mit abstand schreibe und sende geht es nicht. zB : Die probe
wenn ich zwischen Strings %20 schreibe auch geht es. zB: die%20Probe
Was muss ich machen zu senden , wenn ich im Feld von Edit1 oder Edit2 egal was und lang schreibe.Edit:
Bitte aussagekräftige Überschriften wählen, und bitte die Code-Tags benutzen. Danke!
-
Du musst die URL halt in's URL-Format bringen, also Leer-und sonstige Sonderzeichen nach dem Muster der '%20' umwandeln. Entweder von Hand oder du benutzt eine URLEncode-Funktion. Wenn du trotz aller Warnungen bei FastNet bleiben willst bietet sich dafür z.B. die Komponente TNMURL an.
-
Jansen,
Ich danke für Antwort und probiere mit TNMURL kompenente .
-
ich habe es mit zwei Kompenente geschafft.
String a,b,c;
NMURL1->InputString=Trim(Edit1->Text);
a=NMURL1->Encode;NMURL1->InputString=Trim(Edit2->Text);
b= NMURL1->Encode;NMURL1->InputString=Trim(Memo1->Text);
c=NMURL1->Encode;NMHTTP1->Port = 80;
NMHTTP1->Get("http://mitglied.lycos.com/xxxx/PHP/xxx/sendmail.php?f_name="+a+"&f_mail="+b+"&f_message="+c);
-
NMURL1->InputString = "http://mitglied.lycos.com/xxxx/PHP/xxx/sendmail.php" + "?f_name=" + Trim(Edit1->Text) + "&f_mail=" + Trim(Edit2->Text) + "&Message=" + Trim(Memo1->Text)"; NMHTTP1->Get(NMURL1->Encode); ...
-
Du bist Meister Jansen.
Es ist noch Super !!!
-
Noch superer?
Wichtig ist, dass du dir Gedanken gemacht und selbst eine Lösung gefunden hast.