IE läd seite nicht

Hallo Community,

was ich anfangs iwie witzig fand und mal wieder als hübschen grund gegen den IE gedient hat bringt mich jetzt bald zur verzweiflung.
die seite ffw-b.bplaced.de/startseite.php wird nicht angezeigt. es sieht aus als würde sie geladen werden, aber anschließend ums verrecken nicht angezeigt. ich drehe durch.
ich hoffe wirklich jemand hat dieses phänomen schonmal gesehen und kann mir nen tipp geben, denn ich kann jetz einfach nichmehr. es gibt KEINERLEI rationalen grund, dass diese seite nicht angezeigt wird, mit firefox, iron und opera klappt alles perfekt, nur der *******… IE will nicht. ich benutze den 8er aber ich glaube bei den anderen klappts auch nich…

mir wurde vorgeschlagen die komprimierung von apache zu deaktivieren, die muss aber scheinbar explizit aktiviert werden, was ich nicht getan habe - ausserdem, wenn das ein problem für den IE darstellen würde, würde doch wohl jede einzelne bplaced-seite dieses problem haben?!

:motz: DAMNIT ich dreh durch :nutz:


EDIT:
Ich glaube ich konnte das Problem eingrenzen: ich binde per include in jede seite eine controller.php ein, die hat mehrere funktionen, die aber jetz ersmal nich wichtig sind, werden hier auch nicht aufgerufen. was allerdings immer ganz oben als allerallererstes passiert ist folgendes:

[code] error_reporting(E_ALL);

//*********************************************************************************************
// Header, Doctype, Mime-Type, Charset
//*********************************************************************************************

$charset		= 'utf-8';
$xml_version	= '1.0';
$mime_type		= 'application/xhtml+xml';
$doctype		= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';

if(isset($_SERVER['HTTP_ACCEPT']) and (!strpos($_SERVER['HTTP_ACCEPT'],$mime_type))) {
                    $mime_type = 'text/html';
}

header("Content-type: $mime_type; charset=$charset");

echo "<?xml version=\"$xml_version\" encoding=\"$charset\"?>\n";
echo "$doctype\n";
echo "\n";[/code]

da scheint wo der wurm drinzustecken, denn eine normale html-seite ohne iwelchen phpschnickschnack etc läd er.

Ich habe die Erfahrung gemacht, dass auch neuere Versionen des IEs mit dem XHTML-Contenttype nicht so recht klarzukommen scheinen. Da musst du dann wohl oder übel auf die Funktionen normalen HTMLs zurückgreifen - immerhin hat das XHTML dann weiterhin die Vorzüge der Codesyntax.

hi,

beim IE wird der content type hier

[quote] if(isset($_SERVER[‘HTTP_ACCEPT’]) and (!strpos($_SERVER[‘HTTP_ACCEPT’],$mime_type))) {
$mime_type = ‘text/html’;
}[/quote]
auf text/html gesetzt, an den IE wird also gar kein xhtml ausgeliefert, das klappt in der praxis ganz gut, ich habe den selben code bei anderen projekten, wo der IE dann schön rausgefiltert wird und nur normales html bekommt…

Bist du dir sicher, dass hier der IE8 wirklich herausgefiltert wird? Microsoft hat in Sachen Standards Meilensteine nachgeholt - ich würde per echo oder Logging einmal überprüfen, welcher Mime-Type gesetzt wird.

ist der selbe code wie bei aurachtaler.de - also ich meine exakt der selbe ich habe beide seiten geschrieben und den teil schäm kopiert. da der mime-type ja auch nochmal als meta-tag ausgegeben wird, kann man das da sehr schön mitlesen.
aber ich kanns gerne versuchen, nur wenn ich was mit echo ausgebe befürchte ich wirds nix bringen, weiler ja schon schwierigkeiten hat den doctype per echo auszugeben…

So: verblüffend: wenn ich den mime-type ausgeben lasse bevor ich den header schicke kommt es natürlich zur fehlermeldung - aber: es funktioniert im prinzip!! allerdings haut das mit dem mime-type hin: text/html, was natürlich scheiße is da ich jetz wieder nich weiß wo der fehler herkommt… -.-

Wo setzt du die Ausgabe? Wenn der echo-Befehl vor der Headermanipulation erfolgt, dann wird der Header natürlich nicht weitergehend verändert, also dürfte der Fehler dann dort liegen.

hallo,

ich bin mir nicht ganz sicher ob diese Methode zuverlässig ist, zB. erhalte ich ohne großartige weitere header:

[code]HEAD http://aurachtaler.de
User-Agent: lwp-request/5.834 libwww-perl/5.834

^-- gesendet; empfangen --v

200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: close
Date: Fri, 28 Jan 2011 23:09:24 GMT
Pragma: no-cache
Server: Apache/2.2
Vary: Accept-Encoding
Content-Type: application/xhtml+xml; charset=utf-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Client-Date: Fri, 28 Jan 2011 23:09:24 GMT
Client-Peer: 178.63.25.142:80
Client-Response-Num: 1
Set-Cookie: PHPSESSID=d0f4e7c85ed5e318b4160f8cd53058ca; path=/

[/code]

klar,
sieht also so aus:

  1. mime-type je nach browser bestimmen [funktioniert]
  2. mime-type ausgeben [funktioniert]
  3. headermanipulation - natürlich erfolglos weil ich ja vorher was ausgegeben habe
  4. restliche seite [funktioniert]

wenn ich jetzt aber schritt 2 auslasse funktioniert gar nichts… folglich sollte bei der headermanipulation wie du schon sagst der fehler stecken und dieser fehler wird nicht ausgelöst wenn ich vorher was ausgebe, weil das wiederum einen anderen fehler erzeugt und den “schwerwiegenden” fehler verhindert.

header(“Content-type: $mime_type; charset=$charset”);

ist charset key-sensitiv? oder kommen da noch wo anführungszeichen rein, die ich übersehn habe?..


@miro mir ist bis dato keine sicher methode bekannt einen IE rauszufischen, mit dem user-agent ist das immer so ne sache, und ich dachte wenn der browser kein application/xhtml+xml kann wirds der IE sein, soweit ich weiß können alle anderen großen browser damit umgehen?

Ich habe den IE8 zwar nicht, aber ich kann mir nicht vorstellen, dass der XHTML immer noch noch nicht unterstützt. Jedenfalls - der einzige Unterschied in den Headeränderungen, die du vornimmst, liegt im Charset. Versuch mal, das wegzulassen.

Moin, also bei mir wird die Seite im IE 8 angezeigt, allerdings ohne Ränder, also sie verteilt sich 100% über den Bildschirm.

Im Opera wird sie (mittig) eingebettet angezeigt, mit Rand und rundungen an den Ecken.

Über dem Seitendesign dann diese Fehlermeldung:

application/xhtml+xml
Warning: Cannot modify header information - headers already sent by (output started at /users/ffw-b/www/controller/controller.php:17) in /users/ffw-b/www/controller/controller.php on line 19

Schönes WE

@thorr Wenn ich generell als XHTML ausliefere zeigt der IE einen downloaddialog an (siehe anhang)

[quote]Moin, also bei mir wird die Seite im IE 8 angezeigt, allerdings ohne Ränder, also sie verteilt sich 100% über den Bildschirm.

Im Opera wird sie (mittig) eingebettet angezeigt, mit Rand und rundungen an den Ecken.

Über dem Seitendesign dann diese Fehlermeldung:

application/xhtml+xml
Warning: Cannot modify header information - headers already sent by (output started at /users/ffw-b/www/controller/controller.php:17) in /users/ffw-b/www/controller/controller.php on line 19

Schönes WE[/quote]

wenn ich zuerst den header per echo ausgeben und anschließend den header senden will kommts natürlich zu diesen fehlern die du im moment siehst. wenn ich die ausgabe vorher weglasse, kommt es entsprechend nicht zu diesem fehler, in diesem fall zeigt der IE einfach GAR nichts an, ich werde das echo jetzt mal rausnehmen damit man nochmal das problem an sich sieht - (bzw nicht, denn man sieht ja dann gar nichts…)

dir auch schönes WE, schau ma mal was draus wird :stuck_out_tongue:

[quote]generell als XHTML[/quote] Also ohne Charset?

nein, ich sende einen header mit xhtml als mime-type und habs auch als meta-tag mit xhtml gehabt.

achso meinst du, hatte ich schon probiert.
wenn ich gar keinen header sende (habe ich jetzt mal so eingestellt, kannst probieren) ist das selbe problem da :-/

Das Problem existiert auch, wenn nur der Code vorhanden ist, aber die Header nicht verändert werden? Poste nochmal, was du nun an Code dort stehen hast.

So, das ist der augenblickliche Stand:

[code]<?php
error_reporting(E_ALL);

//*********************************************************************************************
// Header, Doctype, Mime-Type, Charset
//*********************************************************************************************

$charset		= 'utf-8';
$xml_version	= '1.0';
$mime_type		= 'application/xhtml+xml';
$doctype		= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';

if(isset($_SERVER['HTTP_ACCEPT']) and (! strpos($_SERVER['HTTP_ACCEPT'],$mime_type))) {
	$mime_type = 'text/html';
}

//echo $mime_type;

//header("Content-type: $mime_type; charset=$charset");

echo "<?xml version=\"$xml_version\" encoding=\"$charset\"?>\n";
echo "$doctype\n";
echo "\n";
echo "<!-- ############################################################################\n";
echo "#                                                                               #\n";
echo "#                                                                               #\n";
echo "# Diese Seite wurde von XYZ erstellt und ist gemaess dem          #\n";
echo "# Urheberrechtsgesetz ausgenommen fremder Komponenten, auf die im Quellcode mit #\n";
echo "# Kommentaren hingewiesen wird, alleiniges geistiges Eigentum von Stefan        #\n";
echo "# Niedermann.                                                                   #\n";
echo "# Diese Seite mit all ihren Bestandteilen wird dem Verein 'Freiwillige          #\n";
echo "# Feuerwehr Barthelmesaurach e.V.' kostenlos zur Verfuegung gestellt.           #\n";
echo "#                                                                               #\n";
echo "# Jede unrechtmaessige Kopie oder Verbreitung der Webseite oder einer           #\n";
echo "# Komponente (zum Beispiel Bildmaterial) wird straf- und zivilrechtlich         #\n";
echo "# geahndet.                                                                     #\n";
echo "# Bei Fragen und Anregungen wenden Sie sich bitte an die im Impressum           #\n";
echo "# angegebene Adresse.                                                           #\n";
echo "#                                                                               #\n";
echo "#                                                                               #\n";
echo "# Mit freundlichen Gruessen                                                     #\n";
echo "# Der Webmaster                                                  #\n";
echo "#                                                                               #\n";
echo "############################################################################# -->\n";
echo "\n";[/code]

Und in diesem Zustand lädt die Seite im IE8 auch nicht? Versuch mal, die gesamte if-Abfrage auszukommentieren.

so, if ist jetzt komplett auskommentiert. der unterschied:
vorher kam der ladebalken beim IE, wurde voll und er hat nix angezeigt, jetzt lädt erewig, der ladebalken ist da und wird sehr, sehr langsam voll

edit:
ps.: meine cpu ist jetzt dauerhaft zu 100 % ausgelastet (dualcore, beide)…