phpbar.de logo

Mailinglisten-Archive

[php] Re: Anker in PHP setzen

[php] Re: Anker in PHP setzen

Werner Stuerenburg ws_(at)_art-quarter.com
Fri, 03 Sep 1999 22:25:27 +0200


Martin Ramsch wrote:
> | <scheme>://<net_loc>/<path>;<params>?<query>#<fragment>
> Leider widerspricht diese Form (#...?...) der in RFC 1808 definirten
> Syntax von URLs:

Das tut mir leid: ich wollte nun keineswegs Fehlinformationen
verbreiten. 

Ein Semikolon innerhalb der URL habe ich noch nie gesehen,
infolgedessen auch keine Ahnung, was <params> sein könnten. 

Strenggenommen sagt der Text nicht unbedingt etwas darüber aus, an
welcher Stelle #<fragment> zu stehen hat; die Aussage bezieht sich
ausdrücklich auf <params> und <query>.

Es ist nämlich so, daß ich auf Probleme stoßen bin, die ich nur auf
diese Weise lösen konnte.

> Das Problem mit dem (Nicht-)Caching müßtest Du vermeiden können, indem
> Du im PHP-Skript "Last-Modified:" und evtl. "Expires:"-HTTP-Header
> erzeugst.

Das sehe ich so nicht. Ich sehe zwei Probleme:

- einmal lädt die Seite neu, obwohl lediglich ein Anker innerhalb
derselben Seite angesprungen werden soll. Das passiert bei Netscape
ausschließlich mit GET-Variablen. 

- zweitens habe ich Situationen, in denen neue GET-Variablen an die
alten drangehängt werden, sodaß die URL immer länger wird und
natürlich furchtbar aussieht. 

Wenn ich z. B. die Syntax korrekt ausführe:

	http://pferdezeitung.com/?query=rasse=\'Welsh_A\'&sw=1#a2

und springe einen anderen Anker innerhalb derselben Seite an, dann
wird die Seite neu geladen und die neue Adresse sieht so aus:


http://pferdezeitung.com/?query=rasse=\'Welsh_A\'&sw=1#a3?query=rasse=\'Welsh_A\'&sw=1

Nun kann ich auf der Seite herumspringen, wie ich will, ohne daß
diese neu geladen wird. Wenn man die Adresse von hinten liest, kommt
zuerst <query> und dann #<fragment>, und damit ist er zufrieden.
Vermutlich bin ich deshalb darauf gekommen, die Reihenfolge zu
vertauschen.

Das Phänomen, daß eine neue <query> an eine alte drangehängt wird,
habe ich nur dadurch abstellen können, daß ich die URL der Datei mit
übergebe, etwa in der Art:

	<A HREF='http://pferdezeitung.com/savers/#a0?vorschau=" .
$db->f("id") . "'>Vorschau</A>"

Ohne <query> wäre die Zugabe von http://pferdezeitung.com/savers/
nicht nötig - er hätte ja auch nichts zum wiederholten Dranhängen.

Hier würde es auch naheliegen, die Variablen $PATH_INFO oder
$PHP_SELF zu verwenden; das geht nur auf Umwegen bzw. gar nicht, wie
ich vor ein paar Tagen schon bemerkt habe. Beide Variablen sind bei
Omni z. B. gar nicht gesetzt.

Aber im Zweifel dürfte der Fehler bei mir liegen und ich bitte um
Aufklärung.

-- 
Mit freundlichem Gruss
Werner Stuerenburg

____________________________________________________________
ISIS Verlag - Uhlandstr. 8 - D-32120 Hiddenhausen -  Germany
Tel. 0(049)5224-9974-07, Fax-09, <mailto:ws_(at)_art-quarter.com>
 <http://pferdezeitung.com>    -   <http://art-quarter.com>




php::bar PHP Wiki   -   Listenarchive