- #1
E
ergobert
Guest
Hallo zusammen
Internet Explorer verändert eigenmächtig Inhalte von php-Seiten. Ich hab's nicht glauben wollen und würd's auch nicht schreiben, wenn ich es nicht gut geprüft hätte. Mehrere Bekannte bestätigen meine Entdeckung. (Mit Firefox und Opera läuft die Seite übrigens.)
1. Internet Explorer 7 lädt dynamisch erstellte Seiten nicht komplett neu, sondern nur teilweise, und ersetzt manche (nur manche!) Veränderungen durch die alte Version. (Einstell-Möglichkeiten wie bei jedem Aufruf der Seite auf neuere Version prüfen etc. hab ich natürlich schon durchprobiert, per php entsprechende header versandt, meta-Tags verändert - bringt alles nix.) Deutlicher gesagt: in EIN UND DEMSELBEN DOKUMENT übernimmt er manche Veränderungen (zum Beispiel die Zeile Sie sind hier: ...), andere nicht, sondern zeigt die betreffenden Elemente so an, wie sie beim erstmaligen Laden waren (bsp. ein nach einer Eingabe eigentlich verändertes Formular, dass aber in der alten Version angezeigt wird).
Und noch krasser:
2. Internet Explorer 7 ersetzt eigenmächtig Text (!) durch HTML-Tags und fügt dabei bspw. Bilder ein, die an anderer Stelle im Dokument neben dem selben Wort standen. Wenn also irgendwo auf der Seite ein Symbol und daneben bspw. ein Verzeichnisname steht, und irgendwo anders soll einfach nur stehen: Sie sind hier: /verzeichnisname, dann ersetzt IE den Slash durch das Symbol, das an anderer Stelle neben dem Verzeichnisnamen stand! Im Quelltext taucht beim IE dort also ein <img src= auf, ohne mein Zutun!
Sehr hässliches Verhalten, denn das hat nichts mehr mit der Darstellung zu tun, sondern es werden relevante Informationen (ich will, dass meine Leser einen Slash sehen...) verändert (...aber IE zeigt ihnen keinen Slash, sondern eine Grafik), und ich will lieber gar nicht so genau wissen, wie und wie stark der IE noch reinpfuscht...
[sup]Quelltext, wie er per PHP generiert wurde (und bspw. im Firefox ankommt), siehe vollständiges Skript weiter unten[/sup]
[sup]Quelltext, wie IE ihn anzeigt, wenn man auf Quelltext klickt[/sup]
Wer's selber ausprobieren möchte: Einfach eine Datei testformular.php erstellen (Skript siehe unten), hochladen und mit IE und Firefox laden. Klicken. Staunen.
Wer hat eine Idee dazu? Danke im Voraus
und viele Grüße
Ingbert
P.S.: Das Skript ist zum Testen da, es geht um das merkwürdige Verhalten des IE, nicht um Sinn oder Unsinn, solche Listen mit Formularen zu realisieren
Internet Explorer verändert eigenmächtig Inhalte von php-Seiten. Ich hab's nicht glauben wollen und würd's auch nicht schreiben, wenn ich es nicht gut geprüft hätte. Mehrere Bekannte bestätigen meine Entdeckung. (Mit Firefox und Opera läuft die Seite übrigens.)
1. Internet Explorer 7 lädt dynamisch erstellte Seiten nicht komplett neu, sondern nur teilweise, und ersetzt manche (nur manche!) Veränderungen durch die alte Version. (Einstell-Möglichkeiten wie bei jedem Aufruf der Seite auf neuere Version prüfen etc. hab ich natürlich schon durchprobiert, per php entsprechende header versandt, meta-Tags verändert - bringt alles nix.) Deutlicher gesagt: in EIN UND DEMSELBEN DOKUMENT übernimmt er manche Veränderungen (zum Beispiel die Zeile Sie sind hier: ...), andere nicht, sondern zeigt die betreffenden Elemente so an, wie sie beim erstmaligen Laden waren (bsp. ein nach einer Eingabe eigentlich verändertes Formular, dass aber in der alten Version angezeigt wird).
Und noch krasser:
2. Internet Explorer 7 ersetzt eigenmächtig Text (!) durch HTML-Tags und fügt dabei bspw. Bilder ein, die an anderer Stelle im Dokument neben dem selben Wort standen. Wenn also irgendwo auf der Seite ein Symbol und daneben bspw. ein Verzeichnisname steht, und irgendwo anders soll einfach nur stehen: Sie sind hier: /verzeichnisname, dann ersetzt IE den Slash durch das Symbol, das an anderer Stelle neben dem Verzeichnisnamen stand! Im Quelltext taucht beim IE dort also ein <img src= auf, ohne mein Zutun!
Sehr hässliches Verhalten, denn das hat nichts mehr mit der Darstellung zu tun, sondern es werden relevante Informationen (ich will, dass meine Leser einen Slash sehen...) verändert (...aber IE zeigt ihnen keinen Slash, sondern eine Grafik), und ich will lieber gar nicht so genau wissen, wie und wie stark der IE noch reinpfuscht...
Code:
<p>Sie sind hier: /zeitgeschehen</p>
Code:
<p>Sie sind hier: <IMG class=dirSymbol src=ordner.jpg>zeitgeschehen</p>
Wer's selber ausprobieren möchte: Einfach eine Datei testformular.php erstellen (Skript siehe unten), hochladen und mit IE und Firefox laden. Klicken. Staunen.
Wer hat eine Idee dazu? Danke im Voraus
und viele Grüße
Ingbert
P.S.: Das Skript ist zum Testen da, es geht um das merkwürdige Verhalten des IE, nicht um Sinn oder Unsinn, solche Listen mit Formularen zu realisieren
Code:
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
[url]http://www.w3.org/TR/html4/loose.dtd>[/url]
<html>
<head>
<title>Test</title>
<meta http-equiv=pragma content=no-cache>
<style type=text/css media=screen>
.dirEntryBtn {border:0; background:none; margin:0; padding:0; text-align:left}
.dirSymbol {border:0; margin:0; margin-right:.5em; height:1em; width:1.2em; background:black}
</style>
</head>
<body>
<?php echo <p>Sie sind hier: .htmlentities($_POST['logCurrentAddr']).</p>\r\n; ?>
<form name=irgendwas action=testformular.php method=post>
<?php if ($_POST['logCurrentAddr']!=/unterwegs) {?>
<button class=dirEntryBtn name=logCurrentAddr type=submit
value=/unterwegs><img class=dirSymbol src=ordner.jpg>unterwegs</button>
<br /><?php }
if ($_POST['logCurrentAddr']!=/und_so_weiter) {?>
<button class=dirEntryBtn name=logCurrentAddr type=submit
value=/und_so_weiter><img class=dirSymbol src=ordner.jpg>und_so_weiter</button>
<br /><?php }
if ($_POST['logCurrentAddr']!=/weites_feld) {?>
<button class=dirEntryBtn name=logCurrentAddr type=submit
value=/weites_feld><img class=dirSymbol src=ordner.jpg>weites_feld</button>
<br /><?php }
if ($_POST['logCurrentAddr']!=/zeitgeschehen) {
?><button class=dirEntryBtn name=logCurrentAddr type=submit
value=/zeitgeschehen><img class=dirSymbol src=ordner.jpg>zeitgeschehen</button>
<br /><?php } ?>
</form>
</body>
</html>