XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   (X)HTML (http://xhtmlforum.de/forumdisplay.php?f=72)
-   -   CSS & PHP - daraus entstand Problem im FF (http://xhtmlforum.de/showthread.php?t=34417)

tunc 13.02.2005 21:22

CSS & PHP - daraus entstand Problem im FF
 
Hallo zusammen,
als erstes, wusste ich nicht ob dies der richtige platz im forum ist, um mein Problem zu posten.

Mein CSS-Layout funktionierte bis zum PHP-Einsatz perfekt. Ich habe eine index.php geschrieben, in die ich header.php und footer.php include. dann rufe ich die anderen content seiten via switch case break auf.
Die seite hab ich getestet mit dem IE6, Opera8 und mit FF0.93, aber genau im (schönen, keine ironie) FF kommt eine art FEHLER oder auch BUG, ich habe keine ahnung warum. anstatt dass height 100% eingenommen wird steht in der ersten zeile: ""
Dazu habe ich einen Screenshot gemacht, damit man das besser begut achten kann. Online ist das ganze auch: http://makz.ath.cx/dougart/css/index.php

Hat jemand eine Idee?

http://web6.stevens-network.com/dougart/screen.jpg

derHund 13.02.2005 21:34

hmmm,

gerade wollte ich schreiben, daß ich das problem kenne, mich aber nicht mehr an die lösung erinnern kann ...

aber dann: http://www.php-resource.de/forum/sho...zeichen+anfang

hoffe, das hilft.

tunc 13.02.2005 21:41

hm, also es kann daran liegen das es schon sonntag abend ist, aber wissen was zu machen ist, tja da habe ich keine ahnung. der tread müsste mir eigentlich helfen, aber ich kann damit nichts anfangen :oops:

toscho 13.02.2005 22:52

In dem verlinkten Thread steht eigentlich genau das, was du wissen mußt: Dein HTML-Code beginnt mit einem UTF-8-BOM, wird aber nicht als UTF-8 ausgeliefert, sondern als ISO-8859-1.

Also sorge dafür, daß eines oder besser beides verschwinden.

Außerdem schickst du dein XHTML 1.1 als »text/html« ins Netz, das ist invalid (bemühe die Forumssuche, um die Hintergründe zu erlesen).

Gruß
Thomas

Boris 14.02.2005 02:18

Sorry, aber damit:

Zitat:

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
Erreichst Du überhaupt nichts, weil es "zu spät" kommt. Entweder musst Du es via .htaccess machen, oder mit PHP.

XHTML 1.1 solltets Du eh nicht benutzen, da man dieses als xhtml+xml verschicken MUSS. Tust Du das, kann der IE allerdings die Webseite aber nicht mehr öffnen (er bietet sie zum Download an).

Daher arbeite mit XHTML 1.0 und verschicke mit diesem kleinen PHP-Skriptchen einen passenden MIME-Typ (je nach Unterstützung):

Zitat:

function ua_accepts_xhtml() {
/* Prüft, ob an den UA XHTML ausgeliefert werden darf.
* Gibt TRUE zurück, wenn ja, FALSE, wenn nicht. */

/* In dubio pro HTML. */
$xhtml = FALSE;
$check_pattern = '|application/xhtml\+xml(?!\s*;\s*q=0)|';

/* Behauptet der UA, XHTML zu können? */
if (($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') and
isset($_SERVER['HTTP_ACCEPT']) and
preg_match($check_pattern, $_SERVER['HTTP_ACCEPT'])) {
$xhtml = TRUE;
}
/* Ãltere Geckos haben ein paar Crashbugs mit XHTML. */
if(isset($_SERVER['HTTP_USER_AGENT'])) {
if(preg_match("|rv\:0.9|", $_SERVER['HTTP_USER_AGENT'])) {
$xhtml = FALSE;
}
}
return $xhtml;
}

/* Anwendung. */
$content_type = ua_accepts_xhtml() ? 'application/xhtml+xml' : 'text/html';
header('Content-Type: ' . $content_type . ';charset=utf-8');
header('Vary: Accept, User-Agent');
header('Cache-Control: private');
Der IE kriegst so einfaches text/html (was bei XHTML 1.0 noch gebilligt wird) und alle anderen erhalten korrektes xhtml+xml - und wird somit über den XML-Parser bearbeitet.

Wenn es nicht durch den XML-Parser geht, ist die Nutzung von XHTML sinnlos und Du kannst bei HTML 4.01 bleiben.

tunc 14.02.2005 14:49

Ok dann versuche ich das ganze nochmal via xhtml 1.0 und die formsachen muss ich mir nun auch noch aneignen.

Aso, das PHP-Script, reicht es aus wenn ich das in meiner index.php include?

Nochmal zur Veranschaulichung die index.php:

Code:

<?
include "data/header.php";
if(isset($page)) {switch($page) {
case 'home': include "content/home.php"; break;
case 'about': include "content/about.php"; break;
case 'work': include "content/work.php"; break;
case 'links': include "content/links.php"; break;
case 'gbook': include "content/gbook.php"; break;
case 'contact': include "content/contact.php"; break;
case 'imprint': include "content/imprint.php"; break;
case 'gbadd': include "gbook/gbadd.php"; break;
default: include "content/home.php"; break;
}}
else {include "content/home.php";};
include "data/footer.php";
?>

Geht das ganze wenn ich es noch vor der header.php include?

Boris 14.02.2005 15:04

Ja, Du kannst es überall da einfügen, bevor eine Zeile HTML an den Browser geschickt wird. Am besten aber einfach in die 1. Zeile Deines Codes.

tunc 14.02.2005 15:09

Ok, ich bin ein wenig verwirrt deswegen. der doctype bleibt stehen?!

So und hast du vll noch einen link, wo ich nochmal nachlesen kann wie ich am besten mit xhtml .0 arbeiten kann? sollte kurz, einfach aber informativ sein.

danke schonmal.

Boris 14.02.2005 15:37

Der DOCTYPE muss immer drin bleiben, der hat mit mit dem MIME-Typ "eigentlich" garnix am Hut ;)

Alle Informationen dazu stehen schon mehrfach in diesem Forum. Einfach mal suchen *g*

tunc 14.02.2005 17:41

:roll: ...dann muss ich doch noch mehr zeit investieren. naja nur ein kleiner spass, ich danke dir.

aso, die seite an sich habe ich nochmals überarbeitet (http://www.xhtmlforum.de/viewtopic.p...er=asc&start=0), jetzt wird auch ohne css noch eine gute struktur der seite angezeigt; denke ich mal.


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:37 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023