Internet Explorer verändert eigenmächtig Inhalte von php-Seiten

  • #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...

Code:
<p>Sie sind hier: /zeitgeschehen</p>
[sup]Quelltext, wie er per PHP generiert wurde (und bspw. im Firefox ankommt), siehe vollständiges Skript weiter unten[/sup]

Code:
<p>Sie sind hier: <IMG class=dirSymbol src=ordner.jpg>zeitgeschehen</p>
[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 ;)

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>
 
  • #2
Liebe Leute

da hab' ich offenbar einen schlechten Tag gehabt ;D sonst wäre mir aufgefallen, dass es einfach nur an der Art liegt, wie MSIE mit Buttons umgeht, und zwar mit den <button>-Buttons (also nicht mit den <input type=submit...>-Buttons. =) Regulär sollte jeder Browser beim Absenden des Formulars den Wert des VALUE-Attributs übermitteln. MSIE übermittelt den HTML-Code zwischen <BUTTON> und </BUTTON>. Und wenn man dann zu Testzwecken die Werte in $_POST nachlässig überarbeitet und eine durchwachte Nacht hinter sich hat, dann werden einem beim Test des unten vorgestellten Codes die Augen groß... :2funny:

Also, Problem gelöst, und die Besonderheit des MSIE ist auch vielfach dokumentiert, vergesst diesen Thread ;)

Viele Grüße.
 
Thema:

Internet Explorer verändert eigenmächtig Inhalte von php-Seiten

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben