[PHP] Browser detectie

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben denk ik klaar met het maken van mijn browser detectie, maar wil graag even weten of hij ook goed werkt en de source niet al te n00b-achtig is. :P

De link om het script te testen: browser.php

De browsers die worden ondersteund:

Internet Explorer
Mozilla
Opera
Netscape
Lynx
Bluefish
Konqueror


Andere browser zijn te onbekend om op te nemen in het eindscript, wat uiteraard geen browser detectie script wordt! :)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?
if (
eregi("1.0", $HTTP_USER_AGENT) || 
eregi("2.0", $HTTP_USER_AGENT) || 
eregi("3.0", $HTTP_USER_AGENT) || 
eregi("4.0", $HTTP_USER_AGENT) || 
eregi("5.0", $HTTP_USER_AGENT) || 
eregi("6.0", $HTTP_USER_AGENT)
) {
if (eregi("opera", $HTTP_USER_AGENT)) {
$browser=("Opera"); }
elseif (eregi("Wget", $HTTP_USER_AGENT)) {
$browser=("Konqueror"); }
elseif (eregi("bluefish", $HTTP_USER_AGENT)) {
$browser=("Bluefish"); }
elseif (eregi("lynx", $HTTP_USER_AGENT)) {
$browser=("Lynx"); }
elseif (eregi("netscape", $HTTP_USER_AGENT)) {
$browser=("Netscape"); }
elseif (eregi("msie", $HTTP_USER_AGENT)) {
$browser=("Internet Explorer"); }
elseif (eregi("mozilla", $HTTP_USER_AGENT) &amp;&amp; eregi("gecko", $HTTP_USER_AGENT)) {
$browser=("Mozilla"); }
else {
$browser=("Other"); }
} elseif (eregi("mozilla", $HTTP_USER_AGENT)) {
$browser=("Netscape"); }

echo($browser);
?>

Acties:
  • 0 Henk 'm!

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 11-02 12:38
hier werkt hij goed :)
hij zei internet explorder en ik heb het ! :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op vrijdag 11 januari 2002 00:07 schreef Martink het volgende:
hier werkt hij goed :)
hij zei internet explorder en ik heb het ! :)
En blijkbaar niet alleen bij jou anders had ik het nu wel gehoord denk ik. :)

Acties:
  • 0 Henk 'm!

  • WarPuppy
  • Registratie: Januari 2000
  • Laatst online: 16-08 17:48

WarPuppy

Electronic Technology

Werkt als een tiet hier :)

Acties:
  • 0 Henk 'm!

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 29-05 15:34

RRX

@life-

Neej, met NN4.08 zegt ie: Other

PS:
code:
1
 [HTTP_USER_AGENT] => Mozilla/4.08 [en] (WinNT; I ;Nav)

anders gebruik je ook ff een functie:

zoiets oid:
PHP:
1
2
3
4
5
6
7
8
9
<?
function testbrowser($name,$HTTP_USER_AGENT)
{
    (eregi($name, $HTTP_USER_AGENT))
    {
        return $name;
    }
}
?>

mijn T.net systeemspecspagina


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op vrijdag 11 januari 2002 01:11 schreef RRX het volgende:
Neej, met NN4.08 zegt ie: Other
Heb je verstand van PHP? Ik zit nu nl op school en kan geen veranderingen aanbrengen in de source, maar zou het uitmaken als ik de eerste paar regels:
PHP:
1
2
3
4
5
6
7
8
<?
eregi("1.0", $HTTP_USER_AGENT) || 
eregi("2.0", $HTTP_USER_AGENT) || 
eregi("3.0", $HTTP_USER_AGENT) || 
eregi("4.0", $HTTP_USER_AGENT) || 
eregi("5.0", $HTTP_USER_AGENT) || 
eregi("6.0", $HTTP_USER_AGENT)
?>

vervang voor:
PHP:
1
2
3
4
5
6
7
8
<?
eregi("1.0 ", $HTTP_USER_AGENT) || 
eregi("2.0 ", $HTTP_USER_AGENT) || 
eregi("3.0 ", $HTTP_USER_AGENT) || 
eregi("4.0 ", $HTTP_USER_AGENT) || 
eregi("5.0 ", $HTTP_USER_AGENT) || 
eregi("6.0 ", $HTTP_USER_AGENT)
?>

Met een spatie na de eerste serie nummers zodat oudere netschapen ook herkend worden?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
RRX zou je nog een keertje kunnen testen of het werkt? Ik heb de source enigzins aangepast en het zou nu moeten werken.

Acties:
  • 0 Henk 'm!

Verwijderd

dan moet je volgens mij de spatie door een + vervangen (weet niet 100% zeker, reg ex heh :))

Acties:
  • 0 Henk 'm!

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 29-05 15:34

RRX

@life-

Op vrijdag 11 januari 2002 16:52 schreef Brabus het volgende:
RRX zou je nog een keertje kunnen testen of het werkt? Ik heb de source enigzins aangepast en het zou nu moeten werken.
Yep :)

mijn T.net systeemspecspagina


Acties:
  • 0 Henk 'm!

Verwijderd

Waarom doe je dat met PHP terwijl het ook gewoon met JS kan ??

Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
Op vrijdag 11 januari 2002 23:09 schreef Tizzwat het volgende:
Waarom doe je dat met PHP terwijl het ook gewoon met JS kan ??
en nog veeeeeel simpeler ook
code:
1
2
3
<script language="javascript" type="text/javascript">
document.write(navigator.appName);
</script>

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

  • PipoDeClown
  • Registratie: September 2000
  • Niet online

PipoDeClown

Izze Zimpell

Kwist niet dat Konquerororooror zich als Wget profileerde...

God weet alles, want hij is lid van de Mosad. To protect your freedom i will take that away from you. Mijn drankgebruik heeft ernstig te lijden onder mijn gezondheid.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op vrijdag 11 januari 2002 23:40 schreef PipoDeClown het volgende:
Kwist niet dat Konquerororooror zich als Wget profileerde...
Klopt is een klein foutje hier, maar in het "echte" script staat het wel goed...
Op vrijdag 11 januari 2002 23:00 schreef RRX het volgende:

[..]

Yep :)
Thx voor het testen! :)
Op vrijdag 11 januari 2002 23:09 schreef Tizzwat het volgende:
Waarom doe je dat met PHP terwijl het ook gewoon met JS kan ??
Dan weet ik nl niet zeker dat ik de gewenste output krijg en dat is wel noodzakelijk ivm verwerking in database. Ben overigens een javascript n00b en vind het een klote taal....

Acties:
  • 0 Henk 'm!

Verwijderd

Op vrijdag 11 januari 2002 23:09 schreef Tizzwat het volgende:
Waarom doe je dat met PHP terwijl het ook gewoon met JS kan ??
omdat dat javascript niet op de server werkt. ( en je dan weer moeilijk moet doen die string op de server te krijgen )

daarnaast, javascript is niet cool :p

Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
Op vrijdag 11 januari 2002 23:54 schreef TheViP het volgende:

[..]

omdat dat javascript niet op de server werkt. ( en je dan weer moeilijk moet doen die string op de server te krijgen )

daarnaast, javascript is niet cool :p
moeilijk om de string op server te krijgen => NIET WAAR
javascript is niet cool => NIET WAAR, javascript is juist handig
PHP ruled zeker, maar met JS is dit gewoon echt een heel stuk makkelijker

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op zaterdag 12 januari 2002 00:33 schreef SWINX het volgende:

[..]

moeilijk om de string op server te krijgen => NIET WAAR
javascript is niet cool => NIET WAAR, javascript is juist handig
PHP ruled zeker, maar met JS is dit gewoon echt een heel stuk makkelijker
Kan jij me dan ff snel/simpel uitleggen hoe je dat met JS doet en wat de zekerheid is dat het klopt?

Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
Op zaterdag 12 januari 2002 00:45 schreef Brabus het volgende:

[..]

Kan jij me dan ff snel/simpel uitleggen hoe je dat met JS doet en wat de zekerheid is dat het klopt?
met php moet je veel code gaan "omrekenen"/converteren naar wat het eigenlijk moet zijn, met javascript heb je het meteen
en een $var maken is ook niet zo'n kunst

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je bedoelt zeg maar dat ik het laat opvragen door JS en door PHP in een variable zet. En de JS output is een stuk makkelijker om te zetten naar de exacte output?

Acties:
  • 0 Henk 'm!

Verwijderd

als ik de browser check met javascript is dit meestal omdat ik dhtml gebruik, ik gebruik dan de volgende test:


ie = (document.all);
ns = (document.layers);
ns6 = (document.getElementById && !ie);

zo maak ik onderscheid tussen de verschillende methodes om javascript objecten benaderen, klein vb:

if (ie) {
document.write("ik gebruik IE");
} else if (ns) {
document.write("ik gebruik Netscape <= 4.7");
} else if (ns6) {
document.write("ik gebruik een W3C standaard compatible browser (Mozilla bv.)");
}

php browser detectie gebruik ik meestal als ik een groter onderscheid wil maken tussen de browsers, dus als ik erg op versies ga letten of als ik did gebruik voor een log bijv.

Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
Op zaterdag 12 januari 2002 00:52 schreef SurfingFromAM2PM het volgende:
als ik de browser check met javascript is dit meestal omdat ik dhtml gebruik, ik gebruik dan de volgende test:


ie = (document.all);
ns = (document.layers);
ns6 = (document.getElementById && !ie);

zo maak ik onderscheid tussen de verschillende methodes om javascript objecten benaderen, klein vb:

if (ie) {
document.write("ik gebruik IE");
} else if (ns) {
document.write("ik gebruik Netscape <= 4.7");
} else if (ns6) {
document.write("ik gebruik een W3C standaard compatible browser (Mozilla bv.)");
}

php browser detectie gebruik ik meestal als ik een groter onderscheid wil maken tussen de browsers, dus als ik erg op versies ga letten of als ik did gebruik voor een log bijv.
voor versies kun je ook weer bij javascript terecht :P

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op zaterdag 12 januari 2002 00:55 schreef SWINX het volgende:

[..]

voor versies kun je ook weer bij javascript terecht :P
Damn jullie maken me gek! :o
Pagina: 1