Der Martin: iFrames und PHP Code

Beitrag lesen

Hi,

Also es gibt einen Ordner wo die Datei "homeputer.studio.send.php" drin liegt. Die erste Seite die die Seite aufruft liegt im Hauptordner. Den Aufruf mache ich dort so:

<a href="interface.home.studio/homeputer.studio.send.php?SetStudio_objekt=SE_SC_BI_1114'&'SetStudio_wert=1"

target="home_studio_php" onclick="javascript:location.reload()"><img src="image/touch/2.png" height="30" width="30" alt="umschalten" /></a>

  
okay, merken wir uns /interface.home.studio/homeputer.studio.send.php als aktuelle Ressource. Aber warum adressierst du den Kram nicht absolut, also mit führendem '/', um nicht immer aufpassen zu müssen, von welchem Verzeichnis aus di gerade verlinkst?  
  

> ~~~html

<a href="homeputer.studio.send.php?SetStudio_objekt=SE_SC_BI_1114'&'SetStudio_wert=1"  

> target="home_studio_php" onclick="javascript:location.reload()"><img src="../image/touch/2.png" height="30" width="30" alt="umschalten" /></a>

Ich versteh's immer noch nicht. Ich kann nur vermuten, dass hier genau das passiert, was ich oben andeutete: Du verzettelst dich mit deinen eigenen Pfadangaben.

Und lass doch bitte das unsinnige Label (Sprungmarke) "javascript:" in den Eventhandlern weg.

Dann schreibst Du ich soll '&' nehmen

Nein, das hast du doch schon. Ich schrieb, du solltest dieses Zeichen dem HTML-Kontext entsprechend maskieren. Und wie notiert man ein '&' in HTML korrekt? Wenn man es nicht maskiert, steht es für den Beginn einer Entity-Referenz wie z.B. &lt; oder &quot;. Um ihm diese Sonderbedeutung zu nehmen, muss man das Zeichen selbst in dieser Schreibweise notieren, also &amp; - aber doch nicht in Anführungszeichen!

Betrachten wir ein Beispiel.

<a href="/do.php?command=view&copy=yes">Kopie ansehen</a>

Hier ist der Problemfall, dass die Zeichenfolge &copy eine gültige Entity-Referenz ergibt, die obige Zeile wird vom Browser also interpretiert als

<a href="/do.php?command=view©=yes">Kopie ansehen</a>

Und nun rate mal, was an den Server übermittelt wird. Bestimmt nicht die zwei Parameter command und copy.

Ich dachte das brauch bei der Übergabe einer URL nicht sein?!

Ob URL oder nicht - HTML erfordert es in jedem Fall. Der URL-Kontext (innerhalb HTML!) hat aber eine weitere Stolperfalle.

Kann ich dort auch urlencode nehmen oder bin ich da auf dem Holzweg.

Wie jetzt? Du meinst, das Zeichen als %26 codieren? Ja, syntaktisch wäre das auch korrekt, aber dann ist es nicht mehr Trennzeichen zwischen den URL-Parametern, sondern wird selbst zum Bestandteil des Parameters. Beispiel:

Der Firmenname Wolff&Partner soll als Wert des URL-Parameters übergeben werden. Dann ist die folgende Schreibweise natürlich schon wegen der eben erläuterten Problematik falsch:

<a href="/detail.php?company=Wolff&Partner">Details zum Unternehmen</a>

Das würde nach der browserinternen Fehlerkorrektur, die stillschweigend &amp; annimmt, einen Parameter company mit dem Wert Wolff übermitteln, und einen weiteren Parameter Partner, der keinen Wert erhält. Wenn wir von vornherein &amp; notieren, ist das zwar korrekt im Sinne von HTML, führt aber immer noch zum gleichen falschen Resultat. Hier müssen wir das '&' tatsächlich URL-gerecht codieren, also mit dem sogenannten Percent Encoding:

<a href="/detail.php?company=Wolff%26Partner">Details zum Unternehmen</a>

Danke für die Mühe, stelle mich bestimmt nicht toll an :(

Das ist ja grundsätzlich nicht schlimm, aber bei dir scheint es am grundlegenden Verständnis der Struktur zu klemmen. Und das ist insofern ein Problem, weil wir die auch nicht kennen und höchstens vermuten können.

Ciao,
 Martin

--
Er war ein Mann wie ein Baum. Sie nannten ihn Bonsai.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(