If Funktion

son gohan

Erfahrenes Mitglied
Hallo,

ich habe ein CSS Design erstellt mit einer Technik bei der man drei unnötige Div Container brauch um den IE Brwoser eine mindest Breite vorzugaukeln.

Jetzt wollte ich gerne per PHP diese Drei Anfang- und Endtags nur dann im Quelltext ausgeben lassen, wenn die Seite von einen IE Brwoser aufgerufen wird, bei allen anderen Brwosern reicht ja die Angabe eines min.width Attributes alles zu erreichen.

Nun da ich noch ziemlicher Anfänger bin in PHP brauche ich jetzt etwas Unterstüzung.:rolleyes:

Mein Idee sah so aus, folgenden Code an der STelle wo die Div Container normalerweise stehen müssten:

PHP:
<?php 
 
	if( IE Browser am Start dann echo ) 
	{ 
		echo "<div class="width"><div class="minwidth"><div class="container">"; 
	} 
 
?>

Und folgendes am Ende um die DIV Container zu schliesen:

PHP:
<?php 
 
	if( IE Browser am Start dann echo ) 
	{ 
		echo "<div class="width"><div class="minwidth"><div class="container">"; 
	} 
 
?>

Tja, es fuktioniert aber leider nicht. :-)

Wer kann mir bitte einen beseren Vorschlag machen?
 
Du könntest mit so genannten Conditional Comments arbeiten:
HTML:
<!--[if IE]>
<div class="width"><div class="minwidth"><div class="container">
<![endif]-->

…

<!--[if IE]>
</div></div></div>
<![endif]-->
Diese werden von allen anderen Browsern als dem Internet Explorer als HTML-Kommentare interpretiert.
 
Die Conditional Comments werden zumindest von allen Internet-Explorer-Browsern auf Windows-Systemen interpretiert. Dagegen wird eine serverseitige Lösung wohl nie nur den Internet Explorer herausfiltern können, da sich beispielsweise auch einige Opera-Browser als Internet Explorer ausgeben.
 
Gumbo hat gesagt.:
Dagegen wird eine serverseitige Lösung wohl nie nur den Internet Explorer herausfiltern können, da sich beispielsweise auch einige Opera-Browser als Internet Explorer ausgeben.
Zu diesem Thema hab ich vor kurzem einen Code-Schnipsel gepostet der auch den als IE getarnten Opera als solchen identifiziert.
Funktioniert wunderpraechtig.
Der Trick dabei liegt dabei, dass der Opera auch als IE getarnt im UserAgent-Feld angibt, dass er Opera ist.

Nachtrag: Hier ist der Thread zum Thema.
 
Hi,

welche if Funktion ist jetzt aber zu bevorzugen, ich werde aus dem Hin und Her vom Tread nicht schlau.

PHP:
if ((strpos($_SERVER['HTTP_USER_AGENT'],"MSIE")) && (!strpos($_SERVER['HTTP_USER_AGENT'],"Opera"))) 
 
fuktioniert genauso wie:
if ((strpos($_SERVER['HTTP_USER_AGENT'],"MSIE")!==false) && (strpos($_SERVER['HTTP_USER_AGENT'],"Opera")===false))

obere oder untere? Sagen wir mal die obere ist besser/richtig, dann würde ich meine Div Conatiner so ausgeben:

PHP:
<?php 
if ((strpos($_SERVER['HTTP_USER_AGENT'],"MSIE")) && (!strpos($_SERVER['HTTP_USER_AGENT'],"Opera"))) 
{ 
echo = "<div class=\"width\"><div class=\"minwidth\"><div class=\"container\">";
} 
?>

Und

PHP:
<?php 
if ((strpos($_SERVER['HTTP_USER_AGENT'],"MSIE")) && (!strpos($_SERVER['HTTP_USER_AGENT'],"Opera"))) 
{
echo = "</div></div></div>";
} 
?>

?
 
Zuletzt bearbeitet:
Die obere ist mein Original, ich habe damit keine Probleme.
Die untere wurde von hpvw syntaktisch korrigiert, sodass es also die sauberere Variante ist.

Welche Du nutzt wird egal sein.
 
Hallo,

schuldigung aber was kann man mit so einer Fehlermeldung anfangen:

Parse error: parse error, unexpected '=', expecting ',' or ';' in C:\Programme\OmniSecure\htdocs\index.php on line 32

Dort steht der Code:

PHP:
<?php 
if ((strpos($_SERVER['HTTP_USER_AGENT'],"MSIE")) && (!strpos($_SERVER['HTTP_USER_AGENT'],"Opera"))) 
{ 
echo = "<div class=\"width\"><div class=\"minwidth\"><div class=\"container\">";
} 
?>
 
Zurück