PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP in XHTML


Scream
2006-10-06, 10:50:40
ich habe in XHTML einen Code erstellt um zu überprüfen welcher browser die seite aufruft, dieser funktioniert auch gut
<!--[if IE]>
<h2>Sie benutzen den Internet Explorer.<br />Um diese Seite korrekt anzeigen zu können, sollten sie Firefox installieren.<br />
<a class="news" href="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/2.0rc1/win32/de/Firefox%20Setup%202.0%20RC%201.exe">Download Firefox 2.0 RC 1</a>
</h2>
<![endif]-->

<!--[if IE 7]><!-->
<h2>Sie benutzen IE 7, Firefox oder Opera<h2>
<!--<![endif]-->

wenn der Internet Explorer x-6 benutzt wird erscheint eine Meldung dass meine Seite darauf nicht dargestellt werden kann und dass man Firefox installieren soll
Wenn man den IE 7, Opera, FIrefox oder Sonstige benutzt erscheint ebenfalls ne Meldung.
So weit so gut.

Jetzt habe ich einen PHP Code eingebaut der dann direkt die Weiterleitung ausführt, wenn man einen der unteren Browser benutzt.
Dies funktioniert auch, leider wird man aber als normaler IE Benutzer (z.B. IE 6) auch weitergeleitet. Meine Vermutung ist dass der XHTML Code durch den PHP Code unbrauchbar gemacht wird.
Kann mir jemand weiterhelfen wie ich das hinbekommen kann?


<?php
ob_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>Antary</title>
<link rel="stylesheet" media="all" type="text/css" href="layout/style.css" />
</head><body>

<p><!--[if IE]>
<h2>Sie benutzen den Internet Explorer.<br />Um diese Seite korrekt anzeigen zu können, sollten sie Firefox installieren.<br />
<a class="news" href="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/2.0rc1/win32/de/Firefox%20Setup%202.0%20RC%201.exe">Download Firefox 2.0 RC 1</a>
</h2>
<![endif]-->

<!--[if IE 7]><!-->
<?php
header("Location: www.antary.de/index2.php");
exit;
?>
<!--<![endif]-->

</p>
</body>
</html>
<?php
ob_end_flush();
?>



P.S.
Und nein ich will kein JavaScript verwenden ;)

Gast42
2006-10-06, 11:14:43
ich sehe keine weiterleitungsfunktion.
falls
<?php
ob_end_flush();
?>
die weiterleitung ist, muss sie zwischen if ie7 ... und den dazugehörigen endif stehen.

Scream
2006-10-06, 11:19:11
ups sorry hab das nicht geändert, ich passe den 2ten code an

MadMan2k
2006-10-06, 11:30:52
PHP: Hypertext Preprocessor.
wird ausgeführt bevor die seite gesendet wird. ;)

Scream
2006-10-06, 11:40:12
versteh ich jetzt nicht wirklich, kannst du es vielleicht nochmal besser erklären ;)
und was kann ich dagegen machen?

darph
2006-10-06, 12:32:06
versteh ich jetzt nicht wirklich, kannst du es vielleicht nochmal besser erklären ;)
und was kann ich dagegen machen?
So, wie du das machen möchtest: Nichts.

PHP wird auf dem Server ausgeführt. Dann sendet der Server die Seite an den Client. Dort führt der Client dann deine IF-Abfrage aus. In deinem Script kommt es aber soweit gar nicht, weil vorher (!) schon die PHP-Umleitung stattgefunden hat.


Abgesehen davon: Es ist natürlich ganz tolle Praxis, einfach ein paar User auszusperren, weil du zu faul bist, deine Seite so zu schreiben, daß sie überall funktioniert. X-D

HellHorse
2006-10-06, 13:07:15
Abgesehen davon: Es ist natürlich ganz tolle Praxis, einfach ein paar User auszusperren, weil du zu faul bist, deine Seite so zu schreiben, daß sie überall funktioniert. X-D
Wenn du wirklich XHTML und nicht die Perversion names HTML kompatibles XHTML verwendest wird das zwanglsäufig an sehr vielen Orten nicht laufen. Das hat nichts mit Faulheit sondern fehlendem Browsersupport zu tun. Wenn du HTML kompatibles XHTML verwendest kannst du genausogut HTML 4 verwenden.

darph
2006-10-06, 14:17:52
Wenn du wirklich XHTML und nicht die Perversion names HTML kompatibles XHTML verwendest wird das zwanglsäufig an sehr vielen Orten nicht laufen. Das hat nichts mit Faulheit sondern fehlendem Browsersupport zu tun. Wenn du HTML kompatibles XHTML verwendest kannst du genausogut HTML 4 verwenden.
Hörst du keinen Widerspruch von mir.

MadMan2k
2006-10-06, 14:27:20
Wenn du wirklich XHTML und nicht die Perversion names HTML kompatibles XHTML verwendest wird das zwanglsäufig an sehr vielen Orten nicht laufen. Das hat nichts mit Faulheit sondern fehlendem Browsersupport zu tun. Wenn du HTML kompatibles XHTML verwendest kannst du genausogut HTML 4 verwenden.

if(strpos($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml'))
//...

Scream
2006-10-06, 14:50:26
die ie user haben leider keine chance weil die page stark auf css 2 basiert
sie haben z.b. kein menu, die ganzen div layer sind verschoben und der inhalt wird teilweise nicht formatiert....

aber wenn ich mit der page fertig bin werd ich ne extra css datei für den ie machen

HellHorse
2006-10-06, 16:02:09
if(strpos($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml'))
//...

Damit solche Scherze laufen, brauchst du HTML kompatibles XHTML, was ein Subset von XHTML ist. Das baut auf einer Reihe von Hacks auf, die völlig undokumentiert sind und du folglich auf nicht drauf zählen kannst, dass jeder Browser davon weiss. Das Dokument wird dann je nach Browser völlig unterschiedlich behandelt. Das kann oder kann nicht laufen.

Mal abgesehen davon, dass die Seite im HTML Modus gegenüber dem XHTML Modus vermutlich als schneller empfunden wird, weil inkrementelles laden/rendern funktioniert.

DanMan
2006-10-06, 16:22:24
Man verlinkt auch nicht direkt auf Dateien, die auf fremden Servern liegen, sondern auf die Downloadseite.

MadMan2k
2006-10-06, 17:27:27
Damit solche Scherze laufen, brauchst du HTML kompatibles XHTML, was ein Subset von XHTML ist. Das baut auf einer Reihe von Hacks auf, die völlig undokumentiert sind und du folglich auf nicht drauf zählen kannst, dass jeder Browser davon weiss. Das Dokument wird dann je nach Browser völlig unterschiedlich behandelt. Das kann oder kann nicht laufen.
schon klar, aber praktisch ist der IE der einzige Browser der mit dieser Tag suppe zurecht kommen muss. Und da er sowieso nicht weiß was korrektes HTML ist..

Tommes
2006-10-06, 20:38:06
Mach doch einfach eine JavaScript Weiterleitung...

Scream
2006-10-06, 22:09:26
ne javascript muss echt nicht sein ;)
ich hab jetzt alles in php realisiert und so funktioniert es super