Die Lösung
Hi,
Ich weiss ja nicht, ob das Problem noch besteht. Falls ja, hier die (hoffentlich passende) Lösung:
Stop: Wenn du gerade keine Zeit hast dir das alles durchzulesen dann
scroll einfach mal runter bis „2. Einfache Lösung“. Hab’ leider schon
wieder zu viel zu reden gehabt, wie mir jetzt nach dem Schreiben
auffällt 
Dein Problem hängt wahrscheilich mit dem Cache zusammen. Der
Internetexplorer speichert, wie jeder andere Browser, Bilder und
andere Homepageinhalte auf deiner Festplatte zwischen, um nicht bei
jedem Aufruf der selben Seite wieder alle Daten übertragen zu müssen.
Das spart Zeit und bringt dem User Freude. Das Problem, welches damit
einhergeht ist, dass geänderte Bilder, Css-Files und sonstige separat
gespeicherte Dateien manchmal nicht neu geladen werden, wenn sie es
eigentlich sollten (weil sie z.B. wie in deinem Fall geändert wurden).
Der Browser versucht zwar zu überprüfen, ob neuladebedarf besteht,
(und wie du gesehen hast können das die anderen Browser ja auch), aber
wenn der Internetexplorer beim Server nur die Dateigröße anfragt und
das gespeicherte Bild damit vergleicht kann es sehr gut sein, dass
sich diese nicht weit genug geändert hat, um dem Internet Explorer klar
zu machen, dass es sich bei images/ua_map1.png plötzlich um eine
andere Datei handelt. Kurzum, von alleine kommt der IE nicht drauf.
Wenn du nun die Seite manuell aktualisierst bedeutet das, dass du dem
Browser die strikte Anweisung gibst, wirklich ALLES, auch bereits
gespeichertes, nachzuladen. Siehe da, plötzlich sieht man das
generierte Bild.
So, jetzt zur Sache.
- Die schwierige, aber korrekte Lösung:
http://de2.php.net/manual/en/function.header.php
Die header()-function dient, kurz gesagt, dazu, dem Browser
vorabinformationen zu den Daten zu übermitteln, die gleich kommen
sollen. Dazu zählt zum Beispiel:
- Was soll der Browser damit anstellen? (Ist es eine stinknormale
html-datei oder vielleicht doch ein pdf-dokument (in diesem Fall
müsste es an den passenden Reader übergeben werden))
- Gibt es einen Fehler? (dieser wird normalerweise nicht als HTML-Code
sondern als HTTP-Fehlernummer übermittelt)
- Wie lange ist die Seite gültig?
etc.
In der Diskussion, die sich der Funktionsbeschreibung anschliesst,
werden verschiedene Lösungen vorgeschlagen, wie man ALLE Browser dazu
kriegt, eine Seite bei wirklich jedem Aufruf komplett neu zu laden.
Welche die beste ist (Für alle Browser inkl. Konquerer, Safari, IE
Mac, etc.) weiss ich nicht, aber du kannst dir ja eine aussuchen und
testen. Wichtig ist allerdings, dass vor dem Aufruf dieser Funktion
kein HTML ausgegeben wurde. D.h., deine .php-Datei muss in der ersten
Zeile beim ersten Zeichen sofort mit <?php beginnen. Davor darf es
keine Leerzeile und kein und überhaupt gar nichts geben. Echo
darfst du auch nicht vor Aufruf dieser Function benutzen (es sei denn
mit Output Buffer, andere Geschichte), das heisst du setzt den Befehl
am besten ganz nach oben.
- Einfache Lösung
Du gaukelst dem Internetexplorer einfach vor, dass es sich bei
images/ua_map1.png um eine andere Datei handelt als die, die er schon
kennt. Dazu änderst du deinen Code wie folgt:
Aus
echo „“;
Wird
echo ‚‘;
Dadurch wird hinter die Datei einfach die MD5-Hashsumme des
Bildinhaltes gehängt. Diese hat die Eigenschaft, dass sie sich auch
bei kleinsten Veränderungen im Bild komplett ändert. Das heisst, wenn
dein Script eine andere Karte erstellt hat kriegt die Adresse des
Bildes sofort eine andere Nummer hinter dem Fragezeichen und gilt
somit als neu.
Ich hoffe das hilft
Gruß
Zed