| Autor |
Beitrag |
the-kecks
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: Sa 17.10.09 15:12
hi,
ich möchte per IdHTTP Daten an einen Server schicken. Wie sicher bekannt ist, werden die Postdaten durch ein & getrennt. Nun habe ich in den postdaten einen Link, in dem & vorkommt und den ich nicht weglassen kann.
Meine Frage: wie bekomme ich es hin, dass der server das & zeichen nicht als trennung der postdaten erkennt, sondern als teil eines der Postdaten?
mfg
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 17.10.09 16:16
Hallo,
ich denke mal, du kannst alle Zeichen mit einem Prozentzeichen (%) und dem hexadezimalen Wert escapen: %20 wird zum Leerzeichen; %26 wird zum kaufmännischen Und (&). Probier doch das mal aus.
& in der Wikipedia
Grüße,
Yogu
|
|
the-kecks 
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: Sa 17.10.09 17:08
habs mit %26 probiert, der Link lässt sich nicht öffnen wenn man draufklickt
(mit #38 hab ichs auch probiert, aber da werden die postdaten wieder abgeschnitten)
mfg
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 17.10.09 21:06
the-kecks hat folgendes geschrieben : | habs mit %26 probiert, der Link lässt sich nicht öffnen wenn man draufklickt  |
Links werden aber immer so codiert. Was meinst du damit, wenn du sagst, der Link lasse sich nicht öffnen? Was passiert genau mit den POST-Daten, die an den Server geschickt werden? Wie sieht das Script aus, das sie speichert und an den Browser schickt, der das ganze zu einem Link umwandelt?
the-kecks hat folgendes geschrieben : | | (mit #38 hab ichs auch probiert, aber da werden die postdaten wieder abgeschnitten) |
Da ist logisch, denn #38 wird bereits von Delphi zu '&' umgewandelt 
|
|
the-kecks 
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: Sa 17.10.09 22:03
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 17.10.09 22:06
Ja gut, aber was passiert denn mit diesem Link? In welchem Programm "klickst" du auf ihn? Ist es ein Browser, wird er in HTML-Tags eingeschlossen? Wie sieht dann der HTML-Tag aus?
|
|
the-kecks 
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: Sa 17.10.09 22:20
So...halt eine verlinkung im browser.
mfg
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 17.10.09 22:41
Könntest du mal den HTML-Quelltext rund um den Link posten?
|
|
the-kecks 
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: Sa 17.10.09 23:00
Quelltext 1:
| <span style="color: blue"> [b] url=http://**********/pms.php?action=newpm&userid=**********]*****[/url][/b]</span> |
mfg
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 18.10.09 12:24
|
|
the-kecks 
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: So 18.10.09 16:57
ja die sind absicht, da ich den quelltext des BBCodes zeigen wollte...
also:
Normal gepostet:
[url=**********/pms.php?a...********]hallo[/url]
Mit IdHTTP:
[color=blue][b][url= **********/pms.php?action=newpm <-- wird ab dem & abgeschnitten
mfg
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 18.10.09 17:35
Sehe ich das richtig, du schickst die URL mit TIdHTTP.Post?
Dann musst du anstatt Post die Methode Get verwenden:
Delphi-Quelltext 1: 2: 3: 4: 5:
| var s: String; begin S := IdHTTP1.Get('http://**********/pms.php?action=newpm&userid=**********'); end; |
|
|
LexXis
      
Beiträge: 170
Erhaltene Danke: 3
|
Verfasst: So 18.10.09 18:46
Wandle alle Sonderzeichen in %[Hex] um und setzte vor dem Absenden IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
//EDIT: Zum besseren Verständnis: Ich meine die Sonderzeichen in deinen POST-Daten. Mitunter das '&'..
Hab das gerade mal lokal mit Firefox, xamplite und NetCat ausprobiert, funktioniert einwandfrei 
Zuletzt bearbeitet von LexXis am So 18.10.09 21:54, insgesamt 1-mal bearbeitet
|
|
the-kecks 
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: So 18.10.09 21:28
ich möchte daten an einen server schicken nicht holen...
D.h. ich mache einen post wie hier im forum. Dabei muss unter jedem post dieser bbCode stehen:
Delphi-Quelltext 1: 2: 3: 4: 5:
| var Params : TStringlist; ... Params.Add('blabla'); Params.Add(Nachricht + bbCode); IdHTTP1.Post(URL, Params); |
hoffe jetzt ist es verständlicher
mfg
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 18.10.09 22:01
Zeig doch mal, was am Ende Params.Text steht.
Du könntest die Daten auch mal an yogu.bplaced.net/post.php schicken und schauen, was dort angezeigt wird. Wenn Das & im Browser als normales & angezeigt wird, stimmt die Übertragung und es hakt am Forum. Dann könnte man manche Fehlerquellen schon mal ausschließen.
|
|
the-kecks 
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: So 18.10.09 22:05
die Fehlerquelle ist doch ganz klar. Dieser tag wird abgeschnitten, weil indy denkt das & wäre die trennung zwischen 2
Datensätzen.
mfg
Zuletzt bearbeitet von the-kecks am So 18.10.09 23:04, insgesamt 7-mal bearbeitet
|
|
LexXis
      
Beiträge: 170
Erhaltene Danke: 3
|
Verfasst: So 18.10.09 22:10
Darf ich nochmal auf meinen letzten Post hinweisen? Der beschreibt ziemlich genau die Lösung für dein Problem mit der Trennung der Parameter.. 
|
|
the-kecks 
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: So 18.10.09 23:05
|
|
LexXis
      
Beiträge: 170
Erhaltene Danke: 3
|
Verfasst: So 18.10.09 23:23
Dann lass doch mal ein wenig Quelltext sehen, vielleicht finden wir den Fehler ja noch
Besonders interessieren würde mich der Teil in dem du die Sonderzeichen umwandelst und der in dem du deine Anfrage abschickst.
|
|
the-kecks 
      
Beiträge: 157
Erhaltene Danke: 1
Windows Vista Home Premium 64Bit
Delphi 7 Ent.
|
Verfasst: Mo 19.10.09 00:00
hab deine methode nur mal provesorisch getestet...hab IdHTTP Contenttype umgestellt dann mich mit IdHTTP hier eingeloggt und meinen post (der 7 mal editiert wurde deswegen^^) editiert.
mfg
|
|