Súgó - Keresés - Tagok - Naptár
Teljes változat: Böngésző felismertetése
PC WORLD Segélyvonal > WEBSAROK > Webszerkesztés, programozás > PHP
Pozoki
Szeretnék egy olyan kódot, mely felismeri a böngészőt!
Létezik ilyen?
eremit
Szerintem ehhez javascript kell.

http://twm.faxunil.hu/muhely/index.php?kat=1&page=8&id=813

De akár ez is jó lehet:
KÓD
<p><script language="JavaScript">
<!--
with (document)
{
write("appCodeName : " + navigator.appCodeName + "<br>");
write("appName : " + navigator.appName + "<br>");
write("appVersion : " + navigator.appVersion + "<br>");
write("userAgent : " + navigator.userAgent + "<br>");
}
// -->
</script> </p>
Kovács Gyula (MiniDisc)
php-ben ez a kód lehet jó:

KÓD

<?php
if(strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
header("Location: indexie.html");
}
elseif(strstr($_SERVER["HTTP_USER_AGENT"], "Opera")) {
header("Location: indexop.html");
}
elseif(strstr($_SERVER["HTTP_USER_AGENT"], "Gecko")) {
header("Location: indexmoz.html");
}
else {
header("Location: index.html");
}
?>
Mezofi
@ MiniDisc
Kipróbáltam a kódot amit beírtál.
Ha IE-t nyitok valóban az indexie.html -t nyitja meg.
Ha Operát nyitok újra csak az indexie.html -t nyitja meg.(De ez biztosan nem jó).
Ha Firefox-ot nyitok akkor indexmoz.html -t nyitja meg. (Ez lehet hogy jó így).
tzoli
Nekem működik...
Mezofi
Ide felraktam:Próba php
Ha operával nyitjuk meg , akkor azonkivül, hogy a megadott lapot nyítja meg ki kell írnia, hogy Ez Opera.
Próbáljátok ki, mert nekem azt írja ki, hogy Explorer.
IE esetén is, és Opera esetén is, Firefoxnál jó.
A kód:
KÓD
<?php
if(strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
header("Location: indexie.html");
}
elseif(strstr($_SERVER["HTTP_USER_AGENT"], "Opera")) {
header("Location: indexop.html");
}
elseif(strstr($_SERVER["HTTP_USER_AGENT"], "Gecko")) {
header("Location: indexmoz.html");
}
else {
header("Location: indexmas.html");
}
?>
Kovács Gyula (MiniDisc)
Akkor az Opera Internet Explorernek hazudja magát. Ennyire egyszerű. smile.gif A következő verzióktól (Opera) már kiszedik belőle az IE azonosítást, tehát az Opera az Opera lesz.
Mezofi
Köszi, akkor a hiba nem az én készülékemben van!

Jó lett volna. mert van egy lapom, ahol a nagy képek közt lapozni lehet, de érdekes mód a lapozás IE-vel nem müködik, de Operával és Firefox-al igen.
Ilyenkor kiirhattam volna, hogy sajnos IE-vel nem müködik a lapozás.
De ha az elöbbi scriptet berakom akkor Operánál is figyelmezteti.
Hát most mindig kinmarad a figyelmeztetés.
blush.gif
tzoli
Érdekes a dolog. Localban tesztelve hibátlan, míg amit felraktál ott nekem sem működik...
arpsoft
Otthon és a szerveren ugyan az a web kiszolgáló és PHP verziód van?
tzoli
Valószínűleg nem (és valószínűleg ott van az eb elásva), de hát ezt innen nem fogom tudni megmondani.
Pozoki
Köszönöm hozzászólásaitokat, és a megoldást ! biggrin.gif
Jó lesz ez a kód. smile.gif

Még valami, nem tudnátok megírni mi a rosz a kódomban?

KÓD
<?php

if(strstr($_SERVER["HTTP_USER_AGENT"], "Gecko"))
{
document.write("Az oldal megtekintéséhez az Internet Explorer szügséges !!!");
}
?>
Mezofi
Próbáld így:
KÓD
<?php

if(strstr($_SERVER["HTTP_USER_AGENT"], "Gecko"))
{
print ("Az oldal megtekintéséhez az Internet Explorer szügséges !!!");
}
?>

A javascript és a php script nem ugyanaz!
smile.gif
Pozoki
Működik.
Köszönöm ! biggrin.gif
MacGyver
IDÉZET(Mezofi @ 2005. augusztus 1. 16:03) *

A kód:
KÓD
<?php
if(strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
header("Location: indexie.html");
}
elseif(strstr($_SERVER["HTTP_USER_AGENT"], "Opera")) {
header("Location: indexop.html");
}
elseif(strstr($_SERVER["HTTP_USER_AGENT"], "Gecko")) {
header("Location: indexmoz.html");
}
else {
header("Location: indexmas.html");
}
?>


Ha ezt egy az egyben berakom az oldalam <head> részébe, ezt az üzenetet kapom:

KÓD
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\test2\index.php:7) in c:\program files\easyphp1-8\www\test2\index.php on line 15


Kicsit megváltoztattam, hogy CSS-eket tötsön be:

KÓD
<?php
if(strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
<link rel="stylesheet" href="tel/1024ie.css">
}
else {
<link rel="stylesheet" href="tel/1024.css">
}
?>


Így ezt írja ki:
KÓD
Parse error: parse error in c:\program files\easyphp1-8\www\test2\index.php on line 9


Mit rontok el?

Egyébként hogyan lehetne megvalósítani, hogy felbontás szerint is válasszon CSS-t?
Mezofi
Van a kódban egy ilyen rész:
KÓD
header("Location: indexmas.html");


Ha ezt a sort megelőzi bármilyen html kimenet, akkor kapod a fenti hibaüzenetet.
IDÉZET
Cannot modify header information

Már van küldve információ!

IDÉZET
Kicsit megváltoztattam, hogy CSS-eket tötsön be:
laughing.gif
Nem kicsit!

Talán így jobb lenne:
KÓD
<?php
if(strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
echo '<link rel="stylesheet" href="tel/1024ie.css">';
}
else {
echo '<link rel="stylesheet" href="tel/1024.css">';
}
?>
h.arpad
Több böngészőre (és elkülöníti az IE6-ot az IE7-től):
>>klikk<< ani_wink.gif
MacGyver
IDÉZET(Mezofi @ 2007. július 7. 9:32) *

Talán így jobb lenne:
KÓD
<?php
if(strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
echo '<link rel="stylesheet" href="tel/1024ie.css">';
}
else {
echo '<link rel="stylesheet" href="tel/1024.css">';
}
?>


Kösz, tökéletesen működik!
Ducktor
Azt tapasztaltam, hogy a böngészők nagy részének a USER_AGENT headerjében szerepel az MSIE karakterlánc (talán a buta pluginok miatt, de inkább azért, mert a motorok valahol összefolynak), ha ezt ellenőrizzük utoljára, akkor valószínűbb, hogy sikeres az ellenőrzés.

KÓD
<?php
if(strstr($_SERVER["HTTP_USER_AGENT"], "Opera")) {
header("Location: indexop.html");
}
elseif(strstr($_SERVER["HTTP_USER_AGENT"], "Gecko")) {
header("Location: indexmoz.html");
}
elseif(strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
header("Location: indexie.html");
}
else {
header("Location: indexmas.html");
}
?>


Egyébként pedig, soha nem fogjuk tudni rendesen leellenőrizni a böngészőt, lásd Netscape re mindig Firefoxot fog kiírni, mert azt a motort használja, amit a Firefox. Ez akkor nem is baj, ha csak más CSS-t akarunk betölteni, mert ugyanaz a motor, és ugyanúgy jeleníti meg mindkét böngésző, de ha az ember írt mondjuk pluginokat, akkor az ugye minden egyes böngészőnél más, és akkor nem mindegy, hogy Firefox, vagy Netscape. Ahhoz talán tényleg JavaScript kell, de szerintem ez nem gond, ma már minden rendes böngésző tud ilyet.
h.arpad
Olvass vissza, ott belinkeltem valamit. bulb.gif Egyébként, ha nem a Gecko, hanem a Firefox szóra keresel rá, akkor kiértékeléskor a kifejezés nem lesz igaz a Netscape-re. roll.gif

Ennek a Firefox 3 esetén lehet majd jelentősége, mert az új Gecko motor biztosan néhány esetben másként jeleníti meg majd az oldalakat. A kevés Netcsape-felhasználó miatt viszont csak elvi lehetőség, a gyakorlatban nincs sok értelme. Több értelme lesz majd megkülönböztetni a két fajta Gecko-t [Firefox 1.5 és 2 vs. Firefox 3 (Gran Paradiso)]. Egy ideig... roll.gif
Ez a tartalom egy lebutítottváltozata. A teljes változat képekkel kiegészült megtekintéséhez kérünk, kattints ide.