| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

04-03-2011, 22:58
|
|
thomas_79
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 4
|
|
Unterschiedliche Browser ansprechen
Hallo,
ich würde gerne versuchen mit Hilfe von PHP unterschiedliche Ausgaben zu erschaffen, je nach Browsertyp.
Ich gebe mal ein Beispiel, damit das klarer wird:
Im Internet Explorer soll beispielsweise stehen: "Hallo, du nutzt den Internet Explorer." Im Opera soll an der selben stelle stehen: "hallo, du nutzt Opera als Browser." USW.
Natürlich soll dabei im Opera nicht das stehen, was für den Internet Explorer geschrieben ist, sollte aber klar sein.^^
Wäre nett, wenn ihr mir bei dem Code helfen könnt, der sollte ja nicht allzu kompliziert sein, ich habe leider keine große Ahnung und suche seid gestern Abend nach einer Lösung ohne Erfolg.
|

05-03-2011, 04:03
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
mal abgesehen davon, dass ich den Sinn dieser Sache nicht ganz verstehe, kannst du doch einfach die Anfrage-Header auslesen ($_SERVER-Array) und damit bekommst du zumindest heraus, als was der Browser sich identifiziert. Im Falle von z. B. Opera kann da sehr verschiedenes stehen. Das macht die ganze Sache noch unsinniger, denn mit JavaScript könntest du das viel zuverlässiger feststellen.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

05-03-2011, 12:28
|
|
frag-seb
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 16
|
|
Denke das kann dir weiter helfen so kann so etwa ausehen. Du kannst auch nur "$_SERVER["HTTP_USER_AGENT"]" also echo setzten nur wird zum Bsp.: Mozilla nicht gleich richtig ausgegeben.
PHP-Code:
$browser = (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") ? "MSIE" : ""); $browser.= (strstr($_SERVER["HTTP_USER_AGENT"], "Opera") ? "Opera" : ""); switch ($browser) { case "MSIE": echo "Hallo, du nutzt den Internet Explorer."; break; case "Opera": echo "hallo, du nutzt Opera als Browser."; break; default: echo $_SERVER["HTTP_USER_AGENT"]; }
Geändert von frag-seb (05-03-2011 um 12:35 Uhr)
|

05-03-2011, 13:17
|
|
thomas_79
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 4
|
|
Zitat:
Zitat von AmicaNoctis
Hallo,
mal abgesehen davon, dass ich den Sinn dieser Sache nicht ganz verstehe, kannst du doch einfach die Anfrage-Header auslesen ($_SERVER-Array) und damit bekommst du zumindest heraus, als was der Browser sich identifiziert. Im Falle von z. B. Opera kann da sehr verschiedenes stehen. Das macht die ganze Sache noch unsinniger, denn mit JavaScript könntest du das viel zuverlässiger feststellen.
|
Ich habe leider keine Programmiererfahrung, aber würdest du Javascript da besser finden als die Lösung von "frag-seb"?
Wenn ja wie würdest du das angehen? Ich hatte es mal versucht mit dem Code, der aber nicht funktioniert:
Code:
<script type="text/javascript">
if(engine == "opera") document.write ("Hallo du nutzt Opera.");
</script>
Sry, falls das hier nicht reingehört.
Zitat:
Zitat von frag-seb
Denke das kann dir weiter helfen so kann so etwa ausehen. Du kannst auch nur "$_SERVER["HTTP_USER_AGENT"]" also echo setzten nur wird zum Bsp.: Mozilla nicht gleich richtig ausgegeben.
PHP-Code:
$browser = (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") ? "MSIE" : ""); $browser.= (strstr($_SERVER["HTTP_USER_AGENT"], "Opera") ? "Opera" : ""); switch ($browser) { case "MSIE": echo "Hallo, du nutzt den Internet Explorer."; break; case "Opera": echo "hallo, du nutzt Opera als Browser."; break; default: echo $_SERVER["HTTP_USER_AGENT"]; }
|
Das ist schon mal eine sehr tolle Lösung, danke dir dafür. Es gibt da leider nur ein großes Problem. Wenn ich andere Browser nutze, wie Firefox, Chrome Safari etc. dann kommt die Browserkennung dieser Browser als Textausgabe. Das wollte ich vermeiden.
Nochmals Danke an euch beide bis hierher.
|

05-03-2011, 14:22
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von thomas_79
würdest du Javascript da besser finden
|
Naja, Header vorgaukeln kann jeder. Ich kann deine Seite auch von Hand abfragen und dabei so tun als sei ich ein Firefox 5 auf Windows 9 oder ein IE12 auf GooglixOS 1.3. Mit JavaScript ist das zuverlässiger, weil du da direkt an der Basis sitzt. Es geht jetzt halt darum, was du eigentlich vorhast. Wenn du das in einer DB speichern willst, dann wäre die serverseitige Variante vielleicht schon sinnvoller (wenn auch nicht zuverlässig), wenn es nur um die Ausgabe geht, würde ich JavaScript nehmen. Aber alles steht und fällt mit der Antwort auf meine Eingangsfrage: Warum, welches Ziel verfolgst du damit?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

05-03-2011, 14:39
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Warum nicht dieses: PHP: get_browser - Manual ?
Schöner kann man es Server seitig nicht bekommen.
Und Schummler sind selber Schuld, wenn sie was falsches angezeigt bekommen.
|

05-03-2011, 14:49
|
|
thomas_79
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 4
|
|
Zitat:
Zitat von AmicaNoctis
Es geht jetzt halt darum, was du eigentlich vorhast. Wenn du das in einer DB speichern willst, dann wäre die serverseitige Variante vielleicht schon sinnvoller (wenn auch nicht zuverlässig), wenn es nur um die Ausgabe geht, würde ich JavaScript nehmen. Aber alles steht und fällt mit der Antwort auf meine Eingangsfrage: Warum, welches Ziel verfolgst du damit?
|
Es geht hier hauptsächlich um CSS3, da Firefox und Chrome und ich glaube auch Safari das derzeit schon vereinzelt umsetzen können, möchte ich meine Seite auch langsam umstellen (das ist alles noch in der Beta Phase). Bekanntlich können Opera und IE mit CSS3 nichts anfangen und das Design wird dadurch natürlich anders dargestellt, als es der User von uns haben sollte.
Deswegen möchte ich einen Hinweis ausgeben mit einfachem HTML Code + eben die Textausgabe. In die Datenbank muss ich also nichts eintragen. Hoffe das ist hilfreich, ich dachte, man könnte das mit PHP lösen. Entschuldigt bitte.
Zitat:
Zitat von combie
Und Schummler sind selber Schuld, wenn sie was falsches angezeigt bekommen.
|
Das stimmt allerdings.^^
|

05-03-2011, 15:02
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Du suchst also nach "CSS3 Browserweiche" / "CSS3 browser hack"?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

05-03-2011, 15:45
|
|
frag-seb
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 16
|
|
Hallo ich normal, AmicaNoctis hat nicht ganz unrecht mit aussage das JavaScript für dich vielleicht die bessere Lösung wäre, ist viel genauer.
Allerding hab ich ja jetzt schon mit php angefangen und mache das dann auch mal weiter, kann ja jemand anderes dir eine Lösung mit Java Posten. :-)
Mein Vorschlag:
PHP-Code:
$browser = (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE") ? "MSIE" : ""); $browser.= (strstr($_SERVER["HTTP_USER_AGENT"], "Opera") ? "Opera" : ""); switch ($browser) { case "MSIE": header ("Location: http://www.google.de/#hl=de&source=hp&q=Internet+Exploer"); // Url Austauschen, zu der Seite die mit Internet Explorer richtig läuft break; case "Opera": header ("Location: http://www.google.de/#hl=de&source=hp&q=Opera"); // Url Austauschen, zu der Seite die mit Opera richtig läuft break; default: header ("Location: http://www.google.de/#hl=de&source=hp&q=Neue+Seite"); // Url Austauschen, zu der Neuen Seite die mit CSS3 funzt. }
Ist nur mal so eine Idee mit den Angaben die du hier gerade gemacht hast.
Achtung hab ich jetzt nicht getestet..
|

05-03-2011, 16:03
|
|
thomas_79
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 4
|
|
Hi frag-seb,
die Lösung ist eine tolle Alternative. Danke dafür.
Ich werde das auf jeden Fall mal testen und dir dann sagen, ob es funktioniert.
Eine Javascript Lösung würde ich aber wohl erst mal bevorzugen, wenn ihr mir da helfen würdet, wäre das super.
|

05-03-2011, 16:15
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von thomas_79
Hi frag-seb,
die Lösung ist eine tolle Alternative.
|
Nein, ist sie nicht.
Zitat:
|
Eine Javascript Lösung würde ich aber wohl erst mal bevorzugen
|
CSS Browser Selector
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

05-03-2011, 16:37
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Da wir jetzt wissen, worum es dir geht, halte ich jetzt nur noch die CSS-Weiche für sinnvoll. JavaScript und PHP haben an der Stelle keinen wirklichen Nutzen mehr, weil man mit CSS viel besser prüfen kann, ob diese Version von CSS unterstützt wird. Ich hab ja auch dich direkt gefragt, was du vorhast und mir nicht erst die Telefonnummer deiner Mutter besorgt, um die zu fragen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

06-03-2011, 14:12
|
|
frag-seb
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 16
|
|
Cool, danke wieder mal was gelernt. :-)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|