Problem mit URL Parsing
-
Siehe http://www.c-plusplus.net/forum/viewtopic-var-p-is-1201121.html#1201121
Das Problem sind die Klammern gegen Ende der URL
-
Ziemlich unlösbares Problem, es sei denn man baut url="" ein, in denen " maskiert werden müssen.
MfG SideWinder
-
was spricht dagegen, es ohne anführungszeichen zu machen? Alles was zwischen [url= und ] steht, gehört zur URL.
-
...oder nen JavaScript ergänzen das die URL direkt (vorm einfügen?) kodiert oder so
http://netzreport.googlepages.com/online_tool_zur_url_kodierung_dekodierung.html#kodieren
-
dEUs schrieb:
was spricht dagegen, es ohne anführungszeichen zu machen? Alles was zwischen [url= und ] steht, gehört zur URL.
Die Tatsache, dass eckige Klammern in URLs vorkommen können.
-
geeky schrieb:
[was spricht dagegen] [...] nen JavaScript ergänzen das die URL direkt (vorm einfügen?) kodiert oder so
Weil JavaScript ausschließlich für optionale Spielereien und nicht für für die Betrachtung obligatorische Dinge genutzt werden sollte
-
nman schrieb:
dEUs schrieb:
was spricht dagegen, es ohne anführungszeichen zu machen? Alles was zwischen [url= und ] steht, gehört zur URL.
Die Tatsache, dass eckige Klammern in URLs vorkommen können.
hm... das ist ein Punkt.
-
Lass doch die Runden-Klammern einfach weg. Das finde ich eh die blödeste Erfindung von MS... Der Link geht auch ohne das (VS.80)!
-
Jochen Kalmbach schrieb:
Lass doch die Runden-Klammern einfach weg. Das finde ich eh die blödeste Erfindung von MS... Der Link geht auch ohne das (VS.80)!
Bei Wikipedia-Links tritt das Problem auch auf.
-
Das Problem wurde schon einige Male diskutiert, aber eine probate Lösung steht noch aus. Es gibt dann immer irgendeine URL, die wieder falsch codiert wird.
-
dEUs schrieb:
nman schrieb:
dEUs schrieb:
was spricht dagegen, es ohne anführungszeichen zu machen? Alles was zwischen [url= und ] steht, gehört zur URL.
Die Tatsache, dass eckige Klammern in URLs vorkommen können.
hm... das ist ein Punkt.
Und wenn man den entsprechenden PHP-Code so anpasst, dass er auf die letzte ']' prüft, die in der eingegebenen URL vorkommt?
Ist zwar ein bisschen umständlicher, aber machbar.
Grüße, NewProggie
-
Wo genau ist denn dann deine URL zu Ende? Am Ende des gesamten Postings?
MfG SideWinder
-
Nein. Eine URL muss wohlgeformte Klammerausdrücke beinhalten (oder? ich hoff doch...)
D.h. die erste schließende eckige Klammer, zu der es im bisher erfassten URL-string keine passende öffnende gibt, ist das Ende des URL-strings.
-
dEUs schrieb:
Nein. Eine URL muss wohlgeformte Klammerausdrücke beinhalten (oder? ich hoff doch...)
RFC?
-
ka. gebietet IMHO die Logik...
-
Das würde aber bedeuten, dann man bewusst Unsinn treiben könnte, indem man einen URI postet, der mehr öffnende als schließende Klammern hat. Auch weniger wären denkbar, aber imho weniger kritisch.
-
Was wäre, wenn man ein Zeichen zum begrenzen verwendet, das in ner URL garantiert nicht vorkommen darf?
url=< ... > beispielsweise.
-
ein Pragmatiker - danke
-
Darf vorkommen, gilt aber als "unsafe character" und darf daher nur enkodiert vorkommen. Das gleiche gilt für die doppelten Anführungszeichen
siehe: http://www.w3.org/Addressing/rfc1738.txt (siehe "2.2. URL Character Encoding Issues")
k.A. wie man verhindern könnte dass falsch kodierte URLs angenommen werden...
-
wenns kodiert ist isses ja kein Problem mehr. Als Begrenzer können einfach beliebige Zeichen dienen, die so in ner URL nicht vorkommen können.