larrylu Skrevet 17. juni 2007 Rapporter Del Skrevet 17. juni 2007 engang for del år siden fikk jeg laget et php script som fant ut hviken nett leser brukern har med hjelp av http://phpsniff.sourceforge.net/ når phpsniffer har funnet ut hviken nettleser brukern har henter den inn en css fil for den nettlesern som brukeren benytter. Men jeg husker ikke hvordan det gjores eller noe såtn så håper at noen kan hjelpe meg og lage detet script si at jeg har 4 css filer ie6.css ie7.css firefox.css opera.css Håpen her kan ha noen gode tips til hvoedan det gjøres? Lenke til kommentar
Gjest Slettet+142 Skrevet 17. juni 2007 Rapporter Del Skrevet 17. juni 2007 Lite søk i forumet Et av resultatene i søket Ifølge den tråden, er den enkleste måten javascript. Hvis dette ikke er greit nok, kan du se hva som skrives ut med echo $_SERVER["HTTP_USER_AGENT"];[/url], for at du deretter kan se litt på eregi() Lenke til kommentar
mpolden Skrevet 17. juni 2007 Rapporter Del Skrevet 17. juni 2007 (endret) Er ikke sikker på hvordan phpSniff funker men.. <link rel="stylesheet" type="text/css" media="screen" href=" <?php switch ($browser) { case "ie6": echo 'ie6.css'; break; } ?> " /> Så er det bare å gjenta case for hver browser/style. Endret 17. juni 2007 av darkadmin Lenke til kommentar
Martin A. Skrevet 17. juni 2007 Rapporter Del Skrevet 17. juni 2007 Om jeg ikke tar helt feil, så identifiserer Opera seg som IE6, eller har de sluttet med det? Lenke til kommentar
gommle Skrevet 17. juni 2007 Rapporter Del Skrevet 17. juni 2007 Om jeg ikke tar helt feil, så identifiserer Opera seg som IE6, eller har de sluttet med det? 8884643[/snapback] Det er vel det PHPsniffer gjør, finner ut browseren. Selv om den kanskje identifiserer seg som ie6, så blir det vel oppdaget på en eller annen måte. Lenke til kommentar
0lav Skrevet 17. juni 2007 Rapporter Del Skrevet 17. juni 2007 Opera identifiserte seg selv før som IE6 som standard, men nå identifiserer den seg som Opera, men du kan velge at den skal identifisere seg som andre. Så lenge du har valgt at Opera skal identifisere seg som noe annet så kan man ikke finne ut at det egentlig er Opera.. Lenke til kommentar
larrylu Skrevet 18. juni 2007 Forfatter Rapporter Del Skrevet 18. juni 2007 Er ikke sikker på hvordan phpSniff funker men.. <link rel="stylesheet" type="text/css" media="screen" href=" <?php switch ($browser) { case "ie6": echo 'ie6.css'; break; } ?> " /> Så er det bare å gjenta case for hver browser/style. 8883879[/snapback] takk. det var noe sånt jeg hadde også inludet jeg en fil i phpsniffer tror jeg! men hadde hvert fint hvis noen her hadde kunnet hjelpet meg og gjøre ferdig scripet? fordi det jeg fikk av deg nå mangler jeg vel den delen som finenr ut hviken nettlesr bruker har? Lenke til kommentar
larrylu Skrevet 18. juni 2007 Forfatter Rapporter Del Skrevet 18. juni 2007 Hadde ingen problemer med opera da jeg hadde det scrpet sist phpsniffer fungerte perfekt da ihvertfall men jeg hukser ikke åssen det gjores! så håper dere kan hjelpe meg og få dette til:) Lenke til kommentar
mpolden Skrevet 18. juni 2007 Rapporter Del Skrevet 18. juni 2007 (endret) Hadde ingen problemer med opera da jeg hadde det scrpet sist phpsniffer fungerte perfekt da ihvertfall men jeg hukser ikke åssen det gjores! så håper dere kan hjelpe meg og få dette til:) 8886651[/snapback] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title> Tittel </title> <?php require_once './phpsniff-2.1.3/phpSniff.class.php'; $style = '<link rel="stylesheet" type="text/css" media="screen" href="%s" />'; $phpSniff = &new phpSniff(); $browser = $phpSniff->property('browser'); $version = $phpSniff->property('maj_ver'); switch ($browser) { case 'mz': printf($style, 'firefox.css'); break; case 'ie': switch ($version) { case 7: printf($style, 'ie7.css'); break; case 6: printf($style, 'ie6.css'); break; default: printf($style, 'ie-old.css'); break; } break; case 'op': printf($style, 'opera.css'); break; } ?> </head> <body> <h1>weee</h1> </body> </html> Sjekk http://phpsniff.sourceforge.net/ så finner du ut hva verdiene til $client->propery('browser') kan være. Så er det bare å lage et stylesheet for hver browser. Endret 18. juni 2007 av darkadmin Lenke til kommentar
vidarlo Skrevet 18. juni 2007 Rapporter Del Skrevet 18. juni 2007 Opera identifiserte seg selv før som IE6 som standard, men nå identifiserer den seg som Opera, men du kan velge at den skal identifisere seg som andre. Så lenge du har valgt at Opera skal identifisere seg som noe annet så kan man ikke finne ut at det egentlig er Opera.. 8885171[/snapback] Den heiv på Opera en plass i stringen. Den oppga seg nok som IE til at dei som sjekka etter IE fant IE, men samtidig var det lett å sjå at det var opera. Prøv sjølv om du er i tvil. Lenke til kommentar
larrylu Skrevet 18. juni 2007 Forfatter Rapporter Del Skrevet 18. juni 2007 (endret) Hadde ingen problemer med opera da jeg hadde det scrpet sist phpsniffer fungerte perfekt da ihvertfall men jeg hukser ikke åssen det gjores! så håper dere kan hjelpe meg og få dette til:) 8886651[/snapback] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title> Tittel </title> <?php require_once './phpsniff-2.1.3/phpSniff.class.php'; $style = '<link rel="stylesheet" type="text/css" media="screen" href="%s" />'; $phpSniff = &new phpSniff(); $browser = $phpSniff->property('browser'); switch ($browser) { case 'mz': printf($style, 'firefox.css'); break; case 'ie': printf($style, 'msie.css'); break; case 'op': printf($style, 'opera.css'); break; } ?> </head> <body> <h1>weee</h1> </body> </html> Sjekk http://phpsniff.sourceforge.net/ så finner du ut hva verdiene til $client->propery('browser') kan være. Så er det bare å lage et stylesheet for hver browser. 8887416[/snapback] tussen takk en ting. hvordan får jeg scriptet til og kjenne igjenn IE versjon 6 og 7? hvordan gjør jeg det? kan jeg feks bruke case 'MSIE6': case 'MSIE7': Endret 18. juni 2007 av larrylu Lenke til kommentar
mpolden Skrevet 18. juni 2007 Rapporter Del Skrevet 18. juni 2007 Oppdaterte posten min over. Hvis du vil at ie6.css skal gjelde for alle versjoner av IE, unntatt v7 så kan du fjerne case 6: printf($style, 'ie6.css'); break; default: printf($style, 'ie-old.css'); break; og erstatte det med default: printf($style, 'ie6.css'); break; Lenke til kommentar
larrylu Skrevet 19. juni 2007 Forfatter Rapporter Del Skrevet 19. juni 2007 blir det sånn her ? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title> Tittel </title> <?php require_once './phpsniff-2.1.3/phpSniff.class.php'; $style = '<link rel="stylesheet" type="text/css" media="screen" href="%s" />'; $phpSniff = &new phpSniff(); $browser = $phpSniff->property('browser'); $version = $phpSniff->property('maj_ver'); switch ($browser) { case 'mz': printf($style, 'firefox.css'); break; case 'ie': switch ($version) { case 7: printf($style, 'ie7.css'); break; default: printf($style, 'ie6.css'); break; } break; case 'op': printf($style, 'opera.css'); break; } ?> </head> <body> <h1>weee</h1> </body> </html> Lenke til kommentar
Ståle Skrevet 19. juni 2007 Rapporter Del Skrevet 19. juni 2007 Men hvis koden er 100% riktig, vil ikke siden se lik ut, ihvertfall i, Opera og Fx? Sa kan du bruke sanne derre <!IF IE --> greier for IE Lenke til kommentar
Martin A. Skrevet 19. juni 2007 Rapporter Del Skrevet 19. juni 2007 #php.no har en del kjekke tips [16:13:42] [TommyG] Som jeg fortalte forrige gang du spurte om dette. Drit i slik detekteringstull, og bruk conditional includes istedet. Da lar du nettleseren ta ansvaret for å velge riktig stilark[16:14:12] [TommyG] <!--[if lte IE 6]><link rel="stylesheet" type="text/css" media="screen" href="resources/styles/ie.css" /><![endif]--> [16:14:31] [TommyG] <!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen" href="resources/styles/ie7.css" /><![endif]--> Og det er sant som han sier, det er bare IE6/7 som krever egne stilark, og det er kun til veldig sære saker. Lenke til kommentar
larrylu Skrevet 21. juni 2007 Forfatter Rapporter Del Skrevet 21. juni 2007 #php.no har en del kjekke tips [16:13:42] [TommyG] Som jeg fortalte forrige gang du spurte om dette. Drit i slik detekteringstull, og bruk conditional includes istedet. Da lar du nettleseren ta ansvaret for å velge riktig stilark[16:14:12] [TommyG] <!--[if lte IE 6]><link rel="stylesheet" type="text/css" media="screen" href="resources/styles/ie.css" /><![endif]--> [16:14:31] [TommyG] <!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen" href="resources/styles/ie7.css" /><![endif]--> Og det er sant som han sier, det er bare IE6/7 som krever egne stilark, og det er kun til veldig sære saker. 8900478[/snapback] Litt uenig. slik som denne siden her: www.haldensi.no den får man aldri lik uten og ha et slikt script. hvis man skal få det til bør man kunne css Meget godt. og så god men jeg neppe før om mange år. Lenke til kommentar
endrebjo Skrevet 21. juni 2007 Rapporter Del Skrevet 21. juni 2007 Hvis du skal bruke PHP, så er nok det enkleste å prøve ut hva get_browser() spytter ut, og bygge noe enkle greier rundt det. Lenke til kommentar
jorgis Skrevet 21. juni 2007 Rapporter Del Skrevet 21. juni 2007 Hvis du skal bruke PHP, så er nok det enkleste å prøve ut hva get_browser() spytter ut, og bygge noe enkle greier rundt det. Og da risker du å sende IE-stilark til en nettleser som maskerer seg som IE (f.eks. Opera), og du vil få problemer senere når diverse UA-strenger flytter rundt på seg. Å sniffe UA-strenger på serverside vil veldig fort ødelegge fremoverkompabilitet. Jeg vil sterkt fraråde å bruke serverside kode for å sniffe browsere. Hvis problemet bare består i at IE trøbler seg (noe som er 99%), gjør du veldig klokt i å heller satse på å bruke Conditional Comments. Det lar deg sende spesielle stilark til ulike IE-versjoner uten noen som helst serverside-trøbbel. Den siden som trådstarter linker til kan meget lett utføres vha. conditional comments (og uten vanskeligheter med ren CSS også). Det er ikke et argument for å kjøre det på serverside. Lenke til kommentar
larrylu Skrevet 22. juni 2007 Forfatter Rapporter Del Skrevet 22. juni 2007 Hvis du skal bruke PHP, så er nok det enkleste å prøve ut hva get_browser() spytter ut, og bygge noe enkle greier rundt det. Og da risker du å sende IE-stilark til en nettleser som maskerer seg som IE (f.eks. Opera), og du vil få problemer senere når diverse UA-strenger flytter rundt på seg. Å sniffe UA-strenger på serverside vil veldig fort ødelegge fremoverkompabilitet. Jeg vil sterkt fraråde å bruke serverside kode for å sniffe browsere. Hvis problemet bare består i at IE trøbler seg (noe som er 99%), gjør du veldig klokt i å heller satse på å bruke Conditional Comments. Det lar deg sende spesielle stilark til ulike IE-versjoner uten noen som helst serverside-trøbbel. Den siden som trådstarter linker til kan meget lett utføres vha. conditional comments (og uten vanskeligheter med ren CSS også). Det er ikke et argument for å kjøre det på serverside. 8911976[/snapback] jeg har testet ut skrivet på par nettleres nå og alle kommer opp riktig.. så opera kommer ikke opp feil. pga phpsniffer Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå