[PHP/HTML] Link mit href Anführungszeichen in href übergeben

arsch2150

Lieutenant
Registriert
Apr. 2001
Beiträge
880
Ich habe das Problem, dass ich eine GET-Variable in der Anfühungszeichen stehen als Link mit href übergeben will. Leider bricht er den Link immer beim ersten Anfürhungszeichen ab.

Der Link z.B. wie folgt aus:

<a href="datenbank.php?sortierenArray=a:3:{i:0;a:2:{i:0;s:8:"Nachname";i:1;s:0:"";}i:1;a:2:{i:0;s:7:"Adresse";i:1;s:0:"";}i:2;a:2:{i:0;s:10:"Geburtstag";i:1;s:0:"";}}">

Ich weiß etwas lang.
 
Entweder den Attributswert in single quotes packen:
Code:
<a href='datenbank.php?sortierenArray=a:3:{i:0;a:2:{i:0;s:8:"Nachname";i:1;s:0:"";}i:1;a:2:{i:0;s:7:"Adresse";i:1;s:0:"";}i:2;a:2:{i:0;s:10:"Geburtstag";i:1;s:0:"";}}'>
oder die double quotes maskieren:
Code:
<a href="datenbank.php?sortierenArray=a:3:{i:0;a:2:{i:0;s:8:&quot;Nachname&quot;;i:1;s:0:&quot;&quot;;}i:1;a:2:{i:0;s:7:&quot;Adresse&quot;;i:1;s:0:&quot;&quot;;}i:2;a:2:{i:0;s:10:&quot;Geburtstag&quot;;i:1;s:0:&quot;&quot;;}}">

Generell ist es nicht empfehlenswert Datenstrukturen durch die Gegend zu schicken, damit hat man schon quasi den Türrahmen für eine potenzielle Sicherheitslücke erstellt.

greetings, Keita
 
Habe beide Varianten ausprobiert und bei beiden werden in Opera aus den Anführungszeichen "%22" und im Internet Explorer bricht er irgendwann (aber nicht beim ersten Anführungszeichen).
 
Streng genommen müßtest du auch die Doppelpunkte und geschweiften Klammern maskieren, wenn du eh mit PHP den Parameter generierst, wäre der einfachste und sauberste Weg mit urlEncode() zu arbeiten:

PHP:
printf(
  "<a href='datenbank.php?sortierenArray=%s'>Sortieren</a>",
  urlEncode(serialize($sortierenArray))
);

Dadurch wird der String und somit der URI je nach Größe des Arrays ziemlich lang und läuft Gefahr die 255-Zeichen-Grenze zu überschreiten.

greetings, Keita
 

Ähnliche Themen

A
Antworten
8
Aufrufe
1.856
Mr. Snoot
M
Zurück
Oben