Gå til innhold

$HTTP_USER_AGENT


Anbefalte innlegg

Jeg prøver å sette opp et script som finner ut om mine besøkene er mobil eller PC. Jeg bruker $HTTP_USER_AGENT. Men jeg har et problem. Personer med Sony Ericsson T610 blir sett på som en PC :( Noen som vet HTTP_USER_AGENT'en til Sony Ericsson T610? PS: 'eric' og 'sony' virker ikke.

Lenke til kommentar
Videoannonse
Annonse

Tror ikke metoden din for å finne ut hvilken UA folk bruker er så veldig lur. Greit at du bruker $_SERVER['HTTP_USER_AGENT'], men den substr er nok litt for dårlig. Prøv deg heller på preg_match eller eregi. En veldig enkel en som dette

if(eregi("sony", $_SERVER['HTTP_USER_AGENT']))
{
 echo "Du har en Sony et eller annet";
}

Lenke til kommentar
if(eregi("sony", $_SERVER['HTTP_USER_AGENT']))
{
 echo "Du har en Sony et eller annet";
}

Hva er forskjellen?

Forskjellen er at metoden din ikke tar forbehold om at den strengen kan forandre seg. Hva om "Sony" teksten ikke er plassert på den plassen du bruker substr (i fremtiden), Noki blir også litt begrenset måte å finne ut om det er Nokia. Mulig du bare skal finne ut om det er Sony, men likevel så er den metoden din veldig usikker mot forandringer, eregi finner "sony" i strengen uansett hvor den er plassert.

Lenke til kommentar
Forskjellen er at metoden din ikke tar forbehold om at den strengen kan forandre seg. Hva om "Sony" teksten ikke er plassert på den plassen du bruker substr (i fremtiden), Noki blir også litt begrenset måte å finne ut om det er Nokia. Mulig du bare skal finne ut om det er Sony, men likevel så er den metoden din veldig usikker mot forandringer, eregi finner "sony" i strengen uansett hvor den er plassert.

Jeg brukker denne PHP-koden (utdrag):

$browser = substr(trim($HTTP_USER_AGENT),0,4);

Hva skal jeg endre den til, for å få den slik du mener? '$browser' skal bli Sony, Nokia osv.

Lenke til kommentar

Vel, en enkel måte å gjøre det på kan være:

if(eregi("sony", $_SERVER['HTTP_USER_AGENT']))
{
$browser = "sony";
}
if(eregi("nokia", $_SERVER['HTTP_USER_AGENT']))
{
$browser = "nokia";
}

 

Nå er dette sikkert ikke heller beste måte, men da er man sikker på at useragent inneholder sony eller nokia.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...