Autor Beitrag
the-kecks
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 17.10.09 21:06 
user profile iconthe-kecks hat folgendes geschrieben Zum zitierten Posting springen:
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?

user profile iconthe-kecks hat folgendes geschrieben Zum zitierten Posting springen:
(mit #38 hab ichs auch probiert, aber da werden die postdaten wieder abgeschnitten)

Da ist logisch, denn #38 wird bereits von Delphi zu '&' umgewandelt :idea:
the-kecks Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: Sa 17.10.09 22:03 
Zitat:
Da ist logisch, denn #38 wird bereits von Delphi zu '&' umgewandelt :idea:

probieren kann mans ja mal ;)

link im kontext:
ausblenden Quelltext
1:
url=http://**********/pms.php?action=newpm&userid=**********					


Moderiert von user profile iconNarses: Code-Tags hinzugefügt
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: Sa 17.10.09 22:20 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:

& in der Wikipedia

So...halt eine verlinkung im browser.

mfg
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 17.10.09 22:41 
Könntest du mal den HTML-Quelltext rund um den Link posten?
the-kecks Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: Sa 17.10.09 23:00 
ausblenden Quelltext
1:
<span style="color: blue"> [b] url=http://**********/pms.php?action=newpm&userid=**********]*****[/url][/b]</span>					


mfg
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 18.10.09 12:24 
user profile iconthe-kecks hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Quelltext
1:
<span style="color: blue"> [b] url=http://**********/pms.php?action=newpm&userid=**********]*****[/url][/b]</span>					

Sowas kann man doch gar nicht anklicken, das ist ja das reinste Chaos. Sind die ganzen kaputten BB-Codes etwa Absicht? Und das &-Zeichen ist doch richtig dargestellt, damit gibt's doch offensichtlich keine Probleme...
the-kecks Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: So 18.10.09 17:35 
user profile iconthe-kecks hat folgendes geschrieben Zum zitierten Posting springen:
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


Sehe ich das richtig, du schickst die URL mit TIdHTTP.Post?
Dann musst du anstatt Post die Methode Get verwenden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
  s: String;
begin
  S := IdHTTP1.Get('http://**********/pms.php?action=newpm&userid=**********');
end;
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var Params : TStringlist;
...
Params.Add('blabla');
Params.Add(Nachricht + bbCode);  //post + dieser bbCode mit der URL
IdHTTP1.Post(URL, Params);

hoffe jetzt ist es verständlicher ;)

mfg
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: So 18.10.09 23:05 
funzt leider nicht

mfg
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157
Erhaltene Danke: 1

Windows Vista Home Premium 64Bit
Delphi 7 Ent.
BeitragVerfasst: 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