Maik W. aus E: URL-Kodierung vs. Link-Kodierung: So geht's

Beitrag lesen

Tach auch dedlfix,

<a href='".$_SERVER['REQUEST_URI']."'>
Hier wird aber in dieser Form dann vor dem '#' abgeschnitten.
Wann passiert das? Schon im HTML-Code oder erst beim Request?

Erst beim Request.

Angaben hinter dem Anker sind allein für den Browser interessant. Diese sendet er _nicht_ als Bestandteil des Requests an den Server.

Deswegen die Kodierung...

Allerdings geht der direkte Ursprungs-Link nicht mehr, denn die aufgerufene Datei heißt jetzt
pfad/datei.ext#parameter="wert",
und die "escapeten" Anführungszeichen lassen die weitere Verarbeitung scheitern.

Wenn du sie nicht maskiert hast, dann war das sicher das !herrliche Feature Magic Quotes. Deaktiviere es oder beseitige seine Auswirkungen. Hier sieht man mal wieder seine negativen Eigenschaften, da es generell auf alle Eingabedaten wirkt und nicht nur auf die Ausgabedaten für SQL-Querys.

Tss..., tatsächlich, das war noch angeschaltet! Das ist mir doch glatt durchgegangen bei der Konfig. Es funktioniert übrigens prompt, wenn man es abschaltet.

Was muß ich wie kodieren, damit die Anführungszeichen am Ende "pur da stehen?

Kurze Antwort: Kontextgerecht.

Lange Antwort: Du hast Daten vorliegen, die du in einen URL-Kontext einfügen möchtest. Da du sie im Querystring einfügen möchtest, ist die Funktion urlencode() eine gute Wahl. Anschließend soll diese URL in einem HTML-Kontext zu stehen kommen, also wird da auch noch htmlspecialchars() benötigt.

Danke für Deine Hinweise, so funktioniert es auch auf dem Produktivsystem mit eingeschaltetem magic_quotes, auf dessen Konfig ich keinen Einfluß habe.

http://www.gruss-aus-essen.de

Maik

--
Diese Dauerleihgabe wird Ihnen präsentiert von ROMY!
Maik. W. aus E. sagt Dankeschön ;-)