Dennis: URL trennen

Beitrag lesen

Hi Willi,

Ich möchte damit das ganze Frameset nachladen:
<frame src="<?php echo $search ?>" name="mainFrame">

Du willst also, dass deine Datei frameset.php oben genanntes Frameset nachlädt und dafür den als Query-String übergebenen Wert nimmt, z.B.

frameset.php?/pfad/zur/unterseite.html

soll eben <frame src="/pfad/zur/unterseite.html"> erwirken, ja?

Folgendes: Wenn du nun einen Anker z.B. #mein_anker an die URL anhängst, dann bezieht sich dieser Anker ja auf frameset.php, der Browser such den Anker also darin und der Anker kommt (wie bereits erläutert) nicht erst auf dem Server an.

Du musst den Anker also kodieren, d.h. nich # sondern %23 schreiben. Sorge dafür (indem du den Link zum Frameset nachladen anpasst), dass der Benutzer folgende URL aufruft:

frameset.php?/pfad/zur/unterseite.html%23mein_anker

Wenn ich mich nicht irre, solltest du in $_SERVER['QUERY_STRING'] dann /pfad/zur/unterseite.html#mein_anker stehen haben, was du nur noch ausgeben musst. Hierbei bitte htmlspecialchars() verwenden, um XSS Attacken vorzubeugen!!

<frame src="<?php echo htmlspecialchars($_SERVER['QUERY_STRING']); ?>">

So sollte es eigentlich klappen.

Geht der Anker überhaupt nicht mit php?
Nö. Biete es einfach als Feature für Leute an, die Javascript aktiviert haben. Die Usability wird ja nicht so sehr dadurch beeinflusst.

Wie jetzt? Die Usability wird eigentlich durch die Verwendung von Frames und irgendwelchen Frame-Nachlade-Mechanismen grundsätzlich sehr stark eingeschränkt.

Viele Grüße,
  ~ Dennis.