Avatar billede mbs- Nybegynder
28. maj 2012 - 12:02 Der er 55 kommentarer og
1 løsning

Ændre stylesheet til Firefox 64 bit

Hej Eksperten.

Har et problem der driller rimelig meget. Det kan godt være kategorien er forkert, men det var det eneste sted hvor jeg kunne vælge "PHP"
Har tidligere haft et lignende spørgsmål kørende herinde, hvor det drejede sig om en hjemmeside jeg var ved at lave der så mærkelig ud på mac. Jeg fandt et genialt script som kunne definere andre CSS parameter, i forhold til browser og os. Det virkede perfekt!

Men jeg har fundet ud af at der er forskel på Firefox i Windows 7 32 bit kontra 64 bit. Det ser fint ud i 32 bit, men det ser underlig ud i 64 bit. Umiddelbart kan jeg ikke se at scriptet kan læse om det er 64 bit eller ej. Det kan dog være jeg tager fejl, hvilket jeg håber på.

http://bastianallgeier.com/css_browser_selector/

Det eneste jeg ved om scriptet er at det bruger SERVER['HTTP_USER_AGENT'] og det er jeg desværre ikke så bekendt med. Det var blot et script jeg fandt efter en masse søgning på Google. Meget nemt at implementere.

Har skrevet til udviklerne for over en uge siden, og jeg har ikke fået svar.

Synes det er irriterende at der ikke findes en form for standard alle kan ind ordne sig under. Om det er styresystemet eller browseren ved jeg ikke, men det er da åndssvagt.

Håber der er en der kan hjælpe
På forhånd mange tak.

Mvh. Michael Sørensen
Avatar billede claes57 Ekspert
28. maj 2012 - 12:28 #1
SERVER['HTTP_USER_AGENT'] returnerer
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
på min win7-64bit med ff12 - så du skal nok have test på wow64 med i koden (der pt ser ud som dette)

<?php

/*
PHP CSS Browser Selector v0.0.1
Bastian Allgeier (http://bastian-allgeier.de)
http://bastian-allgeier.de/css_browser_selector
License: http://creativecommons.org/licenses/by/2.5/
Credits: This is a php port from Rafael Lima's original Javascript CSS Browser Selector: http://rafael.adm.br/css_browser_selector
*/

function css_browser_selector($ua=null) {
        $ua = ($ua) ? strtolower($ua) : strtolower($_SERVER['HTTP_USER_AGENT']);       

        $g = 'gecko';
        $w = 'webkit';
        $s = 'safari';
        $b = array();
       
        // browser
        if(!preg_match('/opera|webtv/i', $ua) && preg_match('/msie\s(\d)/', $ua, $array)) {
                $b[] = 'ie ie' . $array[1];
        }    else if(strstr($ua, 'firefox/2')) {
                $b[] = $g . ' ff2';       
        }    else if(strstr($ua, 'firefox/3.5')) {
                $b[] = $g . ' ff3 ff3_5';
        }    else if(strstr($ua, 'firefox/3')) {
                $b[] = $g . ' ff3';
        } else if(strstr($ua, 'gecko/')) {
                $b[] = $g;
        } else if(preg_match('/opera(\s|\/)(\d+)/', $ua, $array)) {
                $b[] = 'opera opera' . $array[2];
        } else if(strstr($ua, 'konqueror')) {
                $b[] = 'konqueror';
        } else if(strstr($ua, 'chrome')) {
                $b[] = $w . ' ' . $s . ' chrome';
        } else if(strstr($ua, 'iron')) {
                $b[] = $w . ' ' . $s . ' iron';
        } else if(strstr($ua, 'applewebkit/')) {
                $b[] = (preg_match('/version\/(\d+)/i', $ua, $array)) ? $w . ' ' . $s . ' ' . $s . $array[1] : $w . ' ' . $s;
        } else if(strstr($ua, 'mozilla/')) {
                $b[] = $g;
        }

        // platform               
        if(strstr($ua, 'j2me')) {
                $b[] = 'mobile';
        } else if(strstr($ua, 'iphone')) {
                $b[] = 'iphone';       
        } else if(strstr($ua, 'ipod')) {
                $b[] = 'ipod';       
        } else if(strstr($ua, 'mac')) {
                $b[] = 'mac';       
        } else if(strstr($ua, 'darwin')) {
                $b[] = 'mac';       
        } else if(strstr($ua, 'webtv')) {
                $b[] = 'webtv';       
        } else if(strstr($ua, 'win')) {
                $b[] = 'win';       
        } else if(strstr($ua, 'freebsd')) {
                $b[] = 'freebsd';       
        } else if(strstr($ua, 'x11') || strstr($ua, 'linux')) {
                $b[] = 'linux';       
        }
               
        return join(' ', $b);
       
}

?>
Avatar billede olsensweb.dk Ekspert
28. maj 2012 - 12:38 #2
spændende opgave :)
http://stackoverflow.com/questions/1741933/detect-64-bit-or-32-bit-windows-from-user-agent-or-javascript

ref http://stackoverflow.com/questions/9228565/how-can-i-determine-whether-my-os-is-32-or-64-bit
My best guess is that even though your OS is 64bit, your Webserver is x86 and runs in WOW64-mode (32bit). If that's the case, it should be hard to figure out in pure PHP.
My suggestion (thanks to Leigh for linking to a similar question) is to use WMI:

$out = array();
exec("wmic cpu get DataWidth", $out);
$bits = strstr(implode("", $out), "64") ? 64 : 32;
echo $bits; // 32 or 64

hvilke støtter claes57 ide

og min 32 bit win7 $_SERVER['HTTP_USER_AGENT'] returnerer
Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Avatar billede mbs- Nybegynder
28. maj 2012 - 13:07 #3
claes57 tak for det hurtige svar.

Som jeg kan se det, er den kode du har postet ikke anderledes end det jeg har liggende i scriptet.

Forstår dig heller ikke 100% - Er ikke den skarpeste til php som jeg skrev tidligere. Jeg kan fornemme at det har noget at gøre med "wow64" fordi det er det som server agent returnere.

Er du rar at skære det lidt ud i pap :-) Er som sagt rimelig lost.

Mvh. Michael
Avatar billede claes57 Ekspert
28. maj 2012 - 13:18 #4
jeg valgte bare at køre din kode ud som en service - så alle ikke skal hente, pakke ud, læse...
stykket med
else if(strstr($ua, 'mozilla/')) {
                $b[] = $g;
        }
skal udbygges til at testet på WOW64 og koden fra #2 - og jeg er næppe skarpere til php end dig, så der skal nok en anden ind med en færdig kode.
Avatar billede mbs- Nybegynder
28. maj 2012 - 13:39 #5
claes57 Ahh okay. Så er jeg med. Ja det var nok en åndssvag fejl fra min side. Det er da rigtig det er nemmere at smide koden her. Tak for det. Jeg kan godt fornemme hvad det er du mener, og ronols tror jeg også har fat i den lange ende.

ronols - Er dog ikke helt sikker på hvor det skal hen den bid kode du har postet. Hvis din returnere noget UDEN WoW64, kan jeg godt følge dig i at det er den kode jeg skal bruge. Men hvordan :S

Ville være rart hvis du gad og hjælpe mig lidt, ligesom du har gjort det før :)
Avatar billede olsensweb.dk Ekspert
28. maj 2012 - 14:47 #6
#0 >Det kan godt være kategorien er forkert, men det var det eneste sted hvor jeg kunne vælge "PHP"
prøv at kigge i denne gruppe http://www.eksperten.dk/spm/Programmering/Script/PHP/

jeg må nok lige krybe til korset, "wmic cpu get DataWidth" vil jo netop læse serverens CPU's databredde, og CPU'en databredde er ikke nødvendigvis den sammen som OS databredde.
på egen maskine er CPU databredden 64 bit, og mit os kører 32 bit, og der  retunerer den 64 :(, på webhotellet retunerer den 32 bit (skulle UnoEuro kører 32 bit linux ??).

>Hvis din returnere noget UDEN WoW64,
test om WOW64 findes i agent stringen med strpos, hvis den findes i stringen er det 64 bit, ellers er det 32 bit

en test code er her:
<?php
    include "css_browser_selector.php";
    $browserstr=css_browser_selector();
    list($browser, $os) = explode(" ",$browserstr);
    $agent=$_SERVER['HTTP_USER_AGENT'];
   
    $bits=16; // et vilkårligt tal så jeg kan se den bliver fanget :)
   
    // her skal der testes om os er 32 eller 64 bit
    if($os==="win"){
        $bits = (strpos($agent, "WOW64"))? 64 : 32;   
    }
    // der bør selvføgelig også testes på de andre OSer, en switch er nok at foretrække istedet for en masse if else'er
   
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title></title>
    <style type="text/css">
    </style>
    <script type="text/javascript">
    </script>
</head>
<body>
<?php
    echo "du kører ".$os." i en ".$bits. " bits vertion"; // skriver 64 bit, hvilke er CPU.
?>
   
</body>
</html>


hos mig skriver den
du kører win i en 32 bits vertion
på local host og webhotel (passer)

demo http://experten.olsensweb.dk/963632/
@claes57 hvis du kører demo'en forvendter jeg du får at vide du kører 64 bit vertion

man kunn selvføgelig falde på knæ og anvende js, men så har vi sendt for mange data til clienten
http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/
Avatar billede mbs- Nybegynder
28. maj 2012 - 15:04 #7
Ahh :) Ja det kan jeg godt se. Tak for det. Kunne ikke finde kategorien før.

"du kører safari i en 16 bits vertion"

Viser min Chrome i Windows 7 64 bit? :S
Avatar billede mbs- Nybegynder
28. maj 2012 - 15:07 #8
Hov. Blev ikke helt færdig

Min Firefox i 64 bit Windows 7 siger:
"du kører win i en 64 bits vertion"

Min IE9 i 64 bit Windows 7 siger:
"du kører ie9 i en 16 bits vertion"

Min Chrome i 64 bit Windows 7 siger:
du kører safari i en 16 bits vertion

Det ser lidt underlig ud, men det er egentlig kun i Firefox problemet opstår. Internet Explorer problemer kan jeg bare bruge "if ie" eller ændre stylesheet på enten ie8 eller ie9
Avatar billede olsensweb.dk Ekspert
28. maj 2012 - 15:54 #9
så får du et forket OS fra css_browser_selector.php.
så skriver den ikke "safari win"

prøvede lige
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

fejl fundet, jeg antog parameter 2 altid var OS, hvilke den åbenbart ikke er !!
ved ie skriver den "ie ie9 win"
ved ff skriver den  "Gecko/xxxxx win" tidligere vertioner feks "ff3 ff3_5 win"
hvorom alting er sidste parameter er altid OS


demo opdateret.

<?php
    include "css_browser_selector.php";
    $browserstr=css_browser_selector();   
    $ar= explode(" ",$browserstr);
    $lng=count($ar);
    $browser=$ar[0];
    $os=$ar[$lng-1];
    $agent=$_SERVER['HTTP_USER_AGENT'];   
    $bits=16; // et vilkårligt tal så jeg kan se den bliver fanget :)   
    // her skal der testes om os er 32 eller 64 bit
    if($os==="win"){
        $bits = (strpos($agent, "WOW64"))? 64 : 32;       
    }
    // der bør selvføgelig også testes på de andre OSer   
?>
Avatar billede mbs- Nybegynder
28. maj 2012 - 16:16 #10
"din browser er gecko du kører linux i en 16 bits vertion"
I Crunchbang Linux 64 bit Firefox

"din browser er webkit du kører linux i en 16 bits vertion"
I Crunchbang Linux 64 bit Chrome

Jeg har også en Win XP maskine, men det er vel ikke nødvendigt?

Hvordan og hvor ledes med implementeringen. Kan man ikke ligge det hele i css-browser-selector.php?
Avatar billede olsensweb.dk Ekspert
28. maj 2012 - 17:14 #11
>Kan man ikke ligge det hele i css-browser-selector.php?
jeg ved ikke om det er en god ide at modificerer den, da du så er bundet til denne vertion

lidt hurtig lavet

<?php

/*
PHP CSS Browser Selector v0.0.1
Bastian Allgeier (http://bastian-allgeier.de)
http://bastian-allgeier.de/css_browser_selector
License: http://creativecommons.org/licenses/by/2.5/
Credits: This is a php port from Rafael Lima's original Javascript CSS Browser Selector: http://rafael.adm.br/css_browser_selector
*/

function css_browser_selector($ua=null) {
        $ua = ($ua) ? strtolower($ua) : strtolower($_SERVER['HTTP_USER_AGENT']);       

        $g = 'gecko';
        $w = 'webkit';
        $s = 'safari';
        $b = array();
       
        // browser
        if(!preg_match('/opera|webtv/i', $ua) && preg_match('/msie\s(\d)/', $ua, $array)) {
                $b[] = 'ie ie' . $array[1];
                if(strstr($ua, 'win')) $b[] = (strpos($ua, "WOW64"))? 64 : 32;
        }    else if(strstr($ua, 'firefox/2')) {
                $b[] = $g . ' ff2';       
        }    else if(strstr($ua, 'firefox/3.5')) {
                $b[] = $g . ' ff3 ff3_5';
        }    else if(strstr($ua, 'firefox/3')) {
                $b[] = $g . ' ff3';
        } else if(strstr($ua, 'gecko/')) {
                $b[] = $g;
                if(strstr($ua, 'win')) $b[] = (strpos($ua, "WOW64"))? 64 : 32;
        } else if(preg_match('/opera(\s|\/)(\d+)/', $ua, $array)) {
                $b[] = 'opera opera' . $array[2];
        } else if(strstr($ua, 'konqueror')) {
                $b[] = 'konqueror';
        } else if(strstr($ua, 'chrome')) {
                $b[] = $w . ' ' . $s . ' chrome';
        } else if(strstr($ua, 'iron')) {
                $b[] = $w . ' ' . $s . ' iron';
        } else if(strstr($ua, 'applewebkit/')) {
                $b[] = (preg_match('/version\/(\d+)/i', $ua, $array)) ? $w . ' ' . $s . ' ' . $s . $array[1] : $w . ' ' . $s;
        } else if(strstr($ua, 'mozilla/')) {
                $b[] = $g;
        }

        // platform               
        if(strstr($ua, 'j2me')) {
                $b[] = 'mobile';
        } else if(strstr($ua, 'iphone')) {
                $b[] = 'iphone';       
        } else if(strstr($ua, 'ipod')) {
                $b[] = 'ipod';       
        } else if(strstr($ua, 'mac')) {
                $b[] = 'mac';       
        } else if(strstr($ua, 'darwin')) {
                $b[] = 'mac';       
        } else if(strstr($ua, 'webtv')) {
                $b[] = 'webtv';       
        } else if(strstr($ua, 'win')) {
                $b[] = 'win';       
        } else if(strstr($ua, 'freebsd')) {
                $b[] = 'freebsd';       
        } else if(strstr($ua, 'x11') || strstr($ua, 'linux')) {
                $b[] = 'linux';       
        }
               
        return join(' ', $b);
       
}
?>

ovenstående kan optimers, og der er kun rettet i dem vi har tested her, jeg ved ikke lige hvordan man tester de andres OS'er om de er 32 eller 64 bit.
man bør optimerer med først at finde OS, og derefter browser, da man så vil kunne spare at finde OS igen i browser.

der retuneres følgende:
1 parameter er Browser
næstsidste parameter er antal bit
sidste parameter er OS

test
<?php
    include "css_browser_selector.php";
    $browserstr=css_browser_selector();       
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title></title>
    <style type="text/css">
    </style>
    <script type="text/javascript">
    </script>
</head>
<body>
<?php
print_r($browserstr);
?>
</body>
</html>
Avatar billede olsensweb.dk Ekspert
28. maj 2012 - 18:37 #12
så er det bare at gå i gang med at læse user strings http://www.useragentstring.com/pages/useragentstring.php
FF http://www.useragentstring.com/pages/Firefox/
IE http://www.useragentstring.com/pages/Internet%20Explorer/
Crome http://www.useragentstring.com/pages/Chrome/

jeg har pakket test filerne ned i en fil, hvis du har problemer med at kopierer fra E, rette link op
http://experten.olsensweb.dk/963632/963632.ZIP
Avatar billede mbs- Nybegynder
29. maj 2012 - 17:44 #13
Har ikke lige haft tid til at kigge på det du har lavet, men det gør jeg her om nogle dage. Jeg har lidt travlt med andre opgaver, så det her tilside sætter jeg lige lidt.

Men jeg har faktisk lige fundet ud af at det vidst ikke er noget med 64 bit at gøre :( Jeg tror faktisk det er noget med grafik kort?
Har lige sat en bærbar maskine op til Windows 7 64 bit og der gik jeg selvfølgelig ind for at tjekke siden. Her snakker vi i Firefox 12 som har været problemet på min egen maskine. Der så det fint ud, faktisk ligesom på Windows XP og Windows 7 32 bit. Synes det rabler lidt for det hele :( Kan det virkelig passe der kan være så meget forskel?

I Chrome er alt uændret. Ligemeget om det er XP. W7 32/64
Avatar billede keysersoze Guru
29. maj 2012 - 18:07 #14
Som nævnt i en anden lignende tråd fra din side så er der massevis af indstillinger klienten kan sætte op og som du ikke kan tage højde for - det er tæt på utopi at tro at man kan få et helt ens design på tværs af alle klienter, specielt i noget der skal være så pixel-perfekt som dit, og det har heller aldrig været målet med HTML.

Jeg ved godt at det ikke besvarer dette spørgsmål, men som også nævnt i den anden tråd ville jeg stadig forsøge at gå mere op i at skabe en HTML-kode der kan placere elementerne bedre og så risikere at klippe lidt indhold fra i et fåtal af browsere og ad den vej få skabt et tilnærmelsesvis resultat. Og, uden at have kigget på din CSS og din viden herom, også overveje at lægge et CSS-reset på da det måske kan formindske fejlprocenten.
Avatar billede olsensweb.dk Ekspert
29. maj 2012 - 18:22 #15
>Kan det virkelig passe der kan være så meget forskel?
er den side du tester valid ??
en side der ikke er valid kan du ikke stole på, der kan design skride fra browser til browser

link taget fra http://www.eksperten.dk/spm/963120
http://www.mbstech.dk/ er valid, dog bør du skifter charset til UTF-8
http://mbstech.dk/test/ er næsten valid, 1 lille fejl, uden betydning, kører UTF-8
hvorfor blander du charset på dit site ??

smid et link til siden.

nb: jeg tror jeg ville rette css_browser_selector() til at retunerer et associative array, hvis du nu skal rette i den, da det gør det nemmere af hente den information du skal bruge.
Avatar billede mbs- Nybegynder
29. maj 2012 - 18:38 #16
Ja siden er valid - Det har ikke helt noget med noget af det fra mbsTECH.dk og/eller /test

I følge validator.nu
"Info: The Content-Type was text/html. Using the HTML parser.
Info: Using the schema for HTML5 + SVG 1.1 + MathML 2.0 + RDFa Lite 1.1."
"The document validates according to the specified schema(s) and to additional constraints checked by the validator."

I følge w3.org
"Info Using experimental feature: HTML5 Conformance Checker.
The validator checked your document with an experimental feature: HTML5 Conformance Checker. This feature has been made available for your convenience, but be aware that it may be unreliable, or not perfectly up to date with the latest development of some cutting-edge technologies. If you find any issues with this feature, please report them. Thank you."

"Warning Byte-Order Mark found in UTF-8 File."

"The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported."


Jeg smider lige et link senere. Har ikke lige så meget tid nu, og jeg har tænkt mig at lave det som en skitse over hvordan siden nogenlunde ser ud. Med de fejl der måtte være.
Det har ikke noget med dig at gøre, men jeg er ikke så vild med at vise det rigtig til nogen som helst, før jeg gør det offentlig.

(På mbsTECH.dk) kunne jeg mærkelig nok ikke få æøå til at virke med UTF-8 - det kunne jeg godt med ISO
Avatar billede keysersoze Guru
29. maj 2012 - 18:59 #17
Avatar billede olsensweb.dk Ekspert
29. maj 2012 - 19:35 #18
@keysersoze du kunne også have henvist til din egen guide her på E
du bør nok berører problemet med BOM også, du nævner både PHP og ASP i dine guides.
i PHP er det et problem, ASP har jeg ikke den store erfaring med, men det har du jo :)

ting der ikke virker, hvis filen indeholder BOM

brugeren vil typisk få denne fejl
"Warning: Cannot modify header information - headers already sent by(....)"

ref http://dk2.php.net/manual/en/function.header.php
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP.

ref http://dk.php.net/session_start
Note:
To use cookie-based sessions, session_start() must be called before outputing anything to the browser.

ref http://dk2.php.net/set_cookie
setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction).
Avatar billede keysersoze Guru
29. maj 2012 - 19:44 #19
Korrekt - men nu vil jeg nødigt forsøge at gøre mig klog på sprog jeg ikke arbejder med og derfor bliver det kun skrevet overordnet vedlagt lidt små sprog-specifikke eksempler uden at det skal være det afgørende. Men du er mere end velkommen til at kaste en kommentar på bloggen ;)
Avatar billede mbs- Nybegynder
30. maj 2012 - 10:05 #20
(Tak for links ang. charset. Det må jeg få kigget på når jeg har tid)

Så har jeg en skitse over hjemmesiden klar. Det ser lidt sjovt ud, men det viser FINT problemet. I går installerede jeg en Virtual Windows 7 64 bit på min Windows XP maskine. Da jeg gik ind på siden i den nyeste Firefox var problemet der ikke. Det så fint ud. Det samme gjorde sig gældende i Chrome. Dette er med nvidia graffikkort. Nu har jeg testet siden på 2 maskiner med nvida og windows 7 64 bit.

Men med det samme jeg gør det på min egen maskine. Windows 7 64 bit og med ATI graffikkort, sker tingene. Jeg ved overhovedet ikke om det kan ha noget med det at gøre, det er blot den eneste store forskel der er mellem computerne, og det eneste jeg kan tænke på der er skyld i problemet.

Lige nu hvor jeg sidder i Linux er problemet der også, men det kan jeg nemt rette til med browser selector script. Men den med Windows 7 (Firefox) driller mig.

Siden i en skitse -  http://mbstech.dk/test
Gecko/Firefox/Iceweasel i Linux - http://peecee.dk/upload/view/368573
Chrome i Linux - http://peecee.dk/upload/view/368574

Peace
Avatar billede mbs- Nybegynder
30. maj 2012 - 11:46 #21
Det er godt nok ikke 100% valid i CSS3
http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fmbstech.dk%2Ftest&profile=css3&usermedium=all&warning=1&vextwarning=&lang=en

Er der noget at gøre ved de roterende elementer?
Kan ikke lige se det kan gøres anderledes...
Avatar billede mbs- Nybegynder
30. maj 2012 - 14:45 #22
Så har jeg testet siden på en mere maskine. En Asus Zenbook med Windows 7 Home Premium 64 bit. Firefox ser det også mærkeligt ud.
Avatar billede mbs- Nybegynder
30. maj 2012 - 14:45 #23
... Hov, glemte helt at skrive at det var Intel grafik der er i den. Core 5 CPU
Avatar billede mbs- Nybegynder
08. juni 2012 - 17:38 #24
Men jeg ved nu med sikkerhed (sådan efter hvad jeg har forstået) at det er noget at gøre med font. Kan også forstå at det med php og "server side" ikke er en særlig god idé.

Har prøvet og lege lidt med Google web fonts, og der kan jeg faktisk få det til at se nogenlunde ud (acceptabel) hvis jeg bruger en af deres fonte.

Det er bare svært at få noget der ligner Lucida Sans Unicode og Lucida Grande som jeg brugte før. Det passede rigtig godt til siden.

Det er som om at skriftypen bliver renderet meget mindre på Win7 32 bit, og på Windows xp - sammenlignet med Win7 64 bit

Er der nogle der har nogle alternativer til Lucida/Verdana som Google kan vise? Synes ikke det vælter med valgmuligheder.
Avatar billede mbs- Nybegynder
08. juni 2012 - 18:08 #25
Sorry for en masse spam, men nu har jeg lige prøvet lidt frem og tilbage med ronols script. På alle de maskiner jeg har prøvet, viser den korrekt hvad for en browser og os man bruger.

3 Maskiner, forskelligt hardware med Windows 7 64 bit i Gecko, Webkit og IE. Det stemmer overens hver gang jeg prøver. Ydermere har jeg 2 computere der kører Windows xp, og der vises der også det rigtige resultat

Men kan ikke se i scriptet hvordan jeg så definere at alle dem der f.eks har win32 bit / win64 bit - Det nemmeste vil jo være at skrive .64bit og .32bit også definere de forskellige parameter. Men det kan jeg ikke lige se hvordan der kan gøres :S


<?php
    include "css_browser_selector.php";
    $browserstr=css_browser_selector();   

    $ar= explode(" ",$browserstr);
    $lng=count($ar);
    $browser=$ar[0];
    $os=$ar[$lng-1];
    $agent=$_SERVER['HTTP_USER_AGENT'];   
    $bits=16;
    if($os==="win"){
        $bits = (strpos($agent, "WOW64"))? 64 : 32;       
    }
?>

Kan godt se at der er mere i den nye css_browser_selector fil, men ellers kan jeg ikke se hvad jeg skal skrive for at få det defineret. Har prøvet (og være så dum...) at skrive .64bit .64 .wow64 .win64 men der sker intet. Jeg ved dog at scriptet virker. Hvertfald med de 5 computere jeg har prøvet nu.

Har som sagt meget minimalt php kendskab, så jeg er rimelig meget på bar bund.
Avatar billede olsensweb.dk Ekspert
08. juni 2012 - 19:25 #26
jeg syntes ikke rigtig der er logik mellem dem det virker på og ikke.
jeg kan se google crome har problemer med Verdana google Verdana crome
The default font of Chrome and Safari is Times New Roman.

jeg legede lidt med at overfører som et associative array, prøv om du kan gennemskue de 2 filer der ligger i source
demo http://experten.olsensweb.dk/963632/ (ikke testet på andet ind IE/FF win7 32bit)
source http://experten.olsensweb.dk/963632/963632_1.zip
Avatar billede mbs- Nybegynder
08. juni 2012 - 20:02 #27
På det du har linket http://experten.olsensweb.dk/963632/ viser den at det er 32 bit (forkert). Ellers viser den korrekt os og browser, tilmed viser den ie9 ved ie.

Men prøv og se her

http://mbstech.dk/h/

der viser min
ie: "din browser er ie du kører win i en 64 bits vertion"
fire: "din browser er gecko du kører win i en 64 bits vertion"
chr: "din browser er webkit du kører win i en 64 bits vertion"
(dog mangler der lige at blive angivet hvilket ie det er?)

din viser
ie: "din browser er: ie ie9 du kører win i en 32 bits vertion"
fire: "din browser er: ie ie9 du kører win i en 32 bits vertion"
chr: "din browser er: webkit safari chrome du kører win i en 32 bits vertion"

Jeg takker og bukker for at du gider og bruge din tid på det her.
Med de bedste hilsner
Michael Bay Sørensen
Avatar billede olsensweb.dk Ekspert
08. juni 2012 - 23:20 #28
prøv igen, jeg har lavet en lille ændring i css_browser_selector_modif.php, sat et par paranteser
demo og source opdateret
Avatar billede mbs- Nybegynder
09. juni 2012 - 11:06 #29
Tjekkede i går aftes, og igen her til morgen.

http://experten.olsensweb.dk/963632/

Har to maskiner lige p.t med Windows 7 64 bit:

ie: din browser er: ie ie9 du kører win i en 64 bits vertion
fire: din browser er: gecko du kører win i en 64 bits vertion
chr: din browser er: webkit safari chrome du kører win i en 64 bits vertion

Har en maskine med Windows XP:

ie: din browser er: ie ie8 du kører win i en 32 bits vertion
fire: din browser er: gecko du kører win i en 32 bits vertion
chr: din browser er: webkit safari chrome du kører win i en 32 bits vertion

Det ser altså ud til at vise det rigtige resultat?
Avatar billede mbs- Nybegynder
11. juni 2012 - 11:17 #30
Har også lige prøvet på 2 maskiner med henholdsvis Ubuntu 64 bit og Crunchbang 64 bit

Fire: din browser er: gecko du kører linux i en 64 bits vertion
Chrome: din browser er: webkit safari chrome du kører linux i en 64 bits vertion
Avatar billede olsensweb.dk Ekspert
11. juni 2012 - 12:31 #31
ja det var den nemme del, nu ved vi hvilke OS, Browser og hvormange Bits browseren kører med, men stadig, hvad er det der gør de ser foskællige ud på diverse maskiner.
kunne være du skulle stippe siden ned til det basale, fjerne alt CSS, og langsomt ligge CSS på igen, med teste mellem hver ændring, til du ser hvor det går galt.
dit CSS er lige vel voksent, (en oprydning vil måske hjælpe, du har meget redundant code)
kunne det være jquery der laver knuder ? (tror det ikke)
Avatar billede mbs- Nybegynder
11. juni 2012 - 14:00 #32
Men jeg forstår det ikke 100% - Det server side gør er vel først og fremmest finde ud af hvilket os og browser der kommer ind på siden. Bagefter kan man vel selv sagt bruge det til at definere andet css i forhold til. Ligesom det eksisterende script.

F.eks kan jeg skrive til Firefox users: ".gecko body {font-size:12.5px}" hvor f.eks til chrome og firefox i windows xp er helt plain "body {font-size: 14px;}"

Med mine øjne kan jeg ikke se så meget kodning i php i selve scriptet. Jeg mener, så besværligt ser det ikk ud til i og med alt det andet bare er at skrive .<os> eller .<browser>. Og du skælder mig bare ud hvis jeg er gal på den ;)

Det er skrift typen der driller lidt, og placeringerne er div i højden. Det er heller ikke helt vild, (hvertfald ikke med div) men skrifttypen er der stor forskel på. Som skrevet tidligere kunne jeg finde en google web font der så nogenlunde ens ud i alle os og browser. Men det passede bare ikke ind i hjemmesiden. Har været igennem mange skrifttyper for at få det til at se godt ud, og blev enig med mig selv om at Lucida Sans gjorde tricket.

Hvis scriptet kunne det jeg gerne ville, så ku jeg definere det forskelligt fra browser til os, med 3-4 parameter, også var det faktisk det. Hvis jeg skal skrive det hele om, og lave giga oprydning vil det ta længere tid. Har prøvet at pille ALT javascript ud, og det har ingen effekt.

Kan dette link egentlig bruges til noget ?

https://github.com/rafaelp/css_browser_selector/commit/1d3c1514342a1dfd34961ca3871312d40359bb8a

Har godt læst lidt på de links du har smidt inde i php filen. Det link der kom fra Ubuntu er jo ikke helt det samme problem som jeg står med.
Avatar billede olsensweb.dk Ekspert
11. juni 2012 - 16:02 #33
>- Det server side gør er vel først og fremmest finde ud af hvilket os og browser der kommer ind på siden
jo det er det som css_browser_selector.php gør

du kan så bruge den oplysning til at give brugeren det rigtige CSS instillinger.

>.gecko body {font-size:12.5px}" hvor f.eks til chrome og firefox i windows xp er helt plain "body {font-size: 14px;}"
her vil du så overskrive font-size til 14px for firefox, uanset OS antal bit og vertion

>Med mine øjne kan jeg ikke se så meget kodning i php i selve scriptet.
nej, css_browser_selector.php er rimeligt simpelt, og laver alt arbejdet, og det er minimalt php code du skal bruge i dit eget script for at aflæse det.

>Hvis scriptet kunne det jeg gerne ville
css_browser_selector.php retunrer bare nogle variable, du skal bare bruge dem.
at jeg så foretrækker at få dem i associative array er noget andet.

>Kan dette link egentlig bruges til noget ?
nej, det er til js vertionen og er lidt forældet "tilføjet FF3.6 til windows" pt er vi oppe i ver 13.0 :)

jeg har lavet en lille ændring i css_browser_selector_modif.php ses kun i FF, hedder nu ikke gecko men firefox, og der er kommet vertions nummer på.
demo og source fra #26 opdateret
Avatar billede mbs- Nybegynder
11. juni 2012 - 16:18 #34
Ja og det er her vi har problemet. For hvis jeg vil definere font-size 12.5 hos firefox i windows 7, så gør den det jo også i windows xp. Som det er nu.

Men vil det så ikke i grunden sige at man kan definere de forskellige parameter nu? F.eks hvis vi har firefox i windows 7 64 bit. Skrive .win7-64.firefox {body... - og så evt. .win7-32.firefox {body...

Kan godt se du har ændret en masse i scriptet. Men jeg har stadigvæk ikke helt fattet det. Mangler at få oplyst om man nu kan definere hos 64 bit users, eller om det stadigvæk er en udfordring.

"css_browser_selector.php retunrer bare nogle variable, du skal bare bruge dem. <--- Men hvordan :S?
at jeg så foretrækker at få dem i associative array er noget andet."

Som sagt forstår jeg ingenting i php.
Avatar billede olsensweb.dk Ekspert
11. juni 2012 - 16:28 #35
>Ja og det er her vi har problemet. For hvis jeg vil definere font-size 12.5 hos firefox i windows 7, så gør den det jo også i windows xp. Som det er nu.
ja

>Mangler at få oplyst om man nu kan definere hos 64
du får oplysningen, brug den.


du kunne overveje at opdele dit css i flere filer, og inclderer de filer der er behov for sådan
læg mærke til <?php echo $browserstr['browser'].$browserstr['bits'].".css"; ?>
vil give firefox32.css, firefox64.css eller hvilke browser du nu anvender, og tilhørende antal bit

<?php
    include "css_browser_selector_modif.php";
    $browserstr=css_browser_selector();   
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title></title>
    <link type="text/css" href="common.css" rel="stylesheet" media="screen" />
    <link type="text/css" href="<?php echo $browserstr['browser'].$browserstr['bits'].".css"; ?>" rel="stylesheet" media="screen" />
    <link type="text/css" href="<?php echo $browserstr['os'].".css"; ?>" rel="stylesheet" media="screen" />   
    <style type="text/css">
    </style>
    <script type="text/javascript">
    </script>
</head>
<body>
<?php
    echo "din browser er: ".$browserstr['browser']." vertion: ".$browserstr['browserversion']." du kører ".$browserstr['os']." i en ".$browserstr['bits']. " bits vertion";
?>
</body>
</html>
Avatar billede mbs- Nybegynder
11. juni 2012 - 16:46 #36
"du kunne overveje at opdele dit css i flere filer, og inclderer de filer der er behov for"

Undskyld mit sprog.
For saaaaaataan mand! :) Det tog lidt tid før jeg fattede det. Men er du vimmer mand jeg er glad nu! Du er slet ikke klar over hvor meget det hjælper mig, og hvor dybt taknemmelig jeg er. Du må sku undskyld hvis jeg ikke lige fattede det hele, og lige med det samme. Nu er jeg begyndt lige så stille og fatte det. I små slag hvertfald.

Det virker nu. Lige nu har jeg sat font-size til 100px på firefox64 (så kan man da se et resultat), og har ikke set at det gør sig gældende på de andre OS og Browsere. Har testet i

Windows XP - Chrome, Firefox og IE
Windows 7 32 bit - Chrome, Firefox og IE
Windows 7 64 bit - Chrome, Firefox og IE (Firefox viser 100px)
Linux Debian 64 bit - Chrome, Firefox og Opera
Linux Ubuntu 32 bit - Chrome, Firefox og Opera

Med mac ved jeg ikke om der er forskel på versionerne. Ved du det? (Altså med 32 og 64 bit)

De bedste hilsner
Michael Bay Sørensen

og TUSIND tak! :) Du smider bare et svar.
Avatar billede olsensweb.dk Ekspert
11. juni 2012 - 17:20 #37
>Med mac ved jeg ikke om der er forskel på versionerne. Ved du det? (Altså med 32 og 64 bit)
nej desværre.

hvis det kun er FF der er problemet, kan du teste føst, og kun includere den ekstra css under ff
<?php
    include "css_browser_selector_modif.php";
    $browserstr=css_browser_selector();   
    $browser=$browserstr['browser'];
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title></title>
   
    <link type="text/css" href="common.css" rel="stylesheet" media="screen" />
    <?php
        if($browser=='firefox'){
            echo '<link type="text/css" href="'.$browser.$browserstr['bits'].'.css'.'" rel="stylesheet" media="screen" />';             
        }       
    ?>
       
    <style type="text/css">
    </style>
    <script type="text/javascript">
    </script>
</head>
<body>
<?php
    echo "din browser er: ".$browserstr['browser']." vertion: ".$browserstr['browserversion']." du kører ".$browserstr['os']." i en ".$browserstr['bits']. " bits vertion";
?>
</body>
</html>
Avatar billede olsensweb.dk Ekspert
11. juni 2012 - 17:20 #38
selv tak
Avatar billede mbs- Nybegynder
11. juni 2012 - 17:42 #39
"hvis det kun er FF der er problemet, kan du teste føst, og kun includere den ekstra css under ff"

Okay. Skide smart. Det ville så sige at jeg ikke behøver

<link type="text/css" href="<?php echo $browserstr['os'].".css"; ?>" rel="stylesheet" media="screen" /> ?

Jeg har gemt denne tråd et sikkert sted så jeg altid kan finde den frem igen. Så kan jeg jo (hvis det bliver et problem) putte det ind, og definere om det er Windows/Mac/Linux.
Avatar billede olsensweb.dk Ekspert
11. juni 2012 - 17:56 #40
>Det ville så sige at jeg ikke behøver
korrekt
du kan se det fremhævet i #37
Avatar billede mbs- Nybegynder
11. juni 2012 - 20:05 #41
Fedt mand. Du har været til stor hjælp. Jeg takker og jeg bukker rigtig mange gange.

God sommer til dig ;)
Avatar billede mbs- Nybegynder
18. juni 2012 - 11:23 #42
Hej ronols

Jeg har sendt dig en mail, håber jeg der er ok.
_____________________________________________
Halløjsa.
Håber ikke jeg forstyrrer, men jeg vil hører om du endnu engang har mulighed for at hjælpe mig? Selvfølgelig kun hvis det kan lade sig gøre..

Scriptet som du har redigeret i virker som det skal, og der er ingen problemer der. Men jeg har nu opdaget at der også er lidt "rendering problems" i Firefox med Windows 7 32 bit.
Som det er nu, hedder den jo "Firefox32.css" når det er Firefox 32 bit. Men den skifter jo ikke hvis det f.eks er Windows 7 der kommer ind på siden. (Altså bliver "Firefox32.css" både brugt til XP og Win7)

Er det muligt at lave således at
<link type="text/css" href="<?php echo $browserstr['os'].".css"; ?>" rel="stylesheet" media="screen" />
Viser
<link type="text/css" href="win7.css" rel="stylesheet" media="screen" />
<link type="text/css" href="winxp.css" rel="stylesheet" media="screen" />

Eller at
<link type="text/css" href="<?php echo $browserstr['browser'].$browserstr['bits'].".css"; ?>" rel="stylesheet" media="screen" />
Viser
<link type="text/css" href="firefox32-win7.css" rel="stylesheet" media="screen" />
<link type="text/css" href="firefox32-winxp.css" rel="stylesheet" media="screen" />


Det gør det meget nemmere for mig hurtig at definer nogle andre parameter I CSS.

De bedste hilsner
Michael Bay Sørensen
Avatar billede olsensweb.dk Ekspert
18. juni 2012 - 14:56 #43
tilføjet til css_browser_selector_modif.php
if((stripos($ua,"Windows NT 6.1")) || (stripos($ua,"WinNT6.1"))) {$osversion = "system_7";} 
elseif ((stripos($ua,"Windows NT 6.0")) || (stripos($ua,"WinNT6.0"))) {$osversion = "Vista";}
elseif ((stripos($ua,"Windows NT 5.2")) || (stripos($ua,"WinNT5.2"))) {$osversion = ".NET_2003";}
elseif ((stripos($ua,"Windows NT 5.1")) || (stripos($ua,"WinNT5.1")) || (stripos($ua,"Windows XP"))) {$osversion = "XP";}
elseif ((stripos($ua,"Windows NT 5.0")) || (stripos($ua,"WinNT5.0")) || (stripos($ua,"Windows 2000")) || (stripos($ua,"Win2000"))) {$osversion = "2000";}
elseif ((stripos($ua,"Windows NT")) || (stripos($ua,"WinNT"))) {$osversion = "NT";}
elseif ((stripos($ua,"Windows 98")) || (stripos($ua,"Win98"))) {$osversion = "98";}
elseif (stripos($ua,"Windows ME") || (stripos($ua,"Win 9x 4.90"))) {$osversion = "ME";}
elseif ((stripos($ua,"Windows 95")) || (stripos($ua,"Win95"))) {$osversion = "95";}
elseif (stripos($ua,"Windows CE")) {$osversion = "CE";}
elseif (stripos($ua,"Win3.11")) {$osversion = "3.11";}
elseif (stripos($ua,"Win3.1")) {$osversion = "3.1";}


testfil + css_browser_selector_modif.php http://experten.olsensweb.dk/963632/963632_2.zip
Avatar billede mbs- Nybegynder
19. juni 2012 - 08:45 #44
Fedt maaan. Tusind tak. Var lige ved at skrive til dig at det ikke behøves hvis det var et stort projekt. Det er kun en eller to px det er galt med, og det er kun fordi jeg er så perfektionistisk :-)

Endnu engang tak. Er specielt glad for de sidste ;) 3.1 og 3.11, hehe.
Avatar billede mbs- Nybegynder
19. juni 2012 - 09:05 #45
Men desværre volder det problemer i chrome nu. Den kan fint finde firefox stylesheet, men i chrome er der blot en tom linje der hvor der sku være css. (Når man kigger i kilden)

firefox64-win-system_7.css viser firefox
chrome ingenting
ie ingenting

Har ikke lige prøvet med andre systemer.
Avatar billede mbs- Nybegynder
19. juni 2012 - 09:06 #46
Ahhhhhhh. Nevermind & sorry endnu engang for spam :)

Jeg kan se at det kun er Firefox der tjekker Windows version. Men det er også fint, det var egentlig også det eneste jeg sku ha.
Avatar billede olsensweb.dk Ekspert
19. juni 2012 - 09:57 #47
>Er specielt glad for de sidste ;) 3.1 og 3.11, hehe.
ja, meget relevant med win 3.x ;) findes der nogle tilbage ?, det kan godt være man skulle fjerne noget forældet code, jeg havde denne gamle browserinfo liggende, som lige skulle opdateres lidt (brugte det nu forældet eregi, og den kendte ikke system_7).
jeg kan klart anbefale dig at kigge på http://www.phpclasses.org/browse/ og blive registreret, (gratis, og du bliver ikke spamet), registrering er ofte nødvendig for at se/downloade code.
det kan godt være man ska kigge på denne også http://techpatterns.com/downloads/php_browser_detection.php

nb: en lille ændring til css_browser_selector_modif_1.php du bør skive "os osversion teksterne" med småt (feks XP bør være xp).
årsag: du bruger osversion teksterne som del af filnavn, og *nix platformen er jo case sensitive
så firefox32-win-xp.css og firefox32-win-XP.css vil være 2 forskællige filer. (god regl, alle filnavne/ext skal være med småt)
Avatar billede mbs- Nybegynder
20. juni 2012 - 09:10 #48
#47
Hehe - Jeg tvivler helt ærlig på at der er flere 3.11 tilbage rundt omkring. Måske ude i det fjerneste afrika hvor supporten alligevel ikke når ud.

To gode links, mange tak. Og ja, jeg vil lige få lavet det småt. Tror også jeg vil ændre "webkit safari chrome...." til bare "webkit" - mindre forvirring, da jeg jo har nogle css filer lige nu. Dog er det jo ikke alle der har flere linjes kode, det er faktisk kun til firefox64 at der er over 50-75 linjer udover almindelig style.css

Endnu engang mange tusind tak, du har været til stor hjælp.
Avatar billede mbs- Nybegynder
28. juni 2012 - 09:32 #49
Halløjsa. Du må virkelig undskylde at jeg bliver ved, men jeg har endnu en ting som jeg lige vil hører eksperten om.

Har faktisk tidligere skrevet en mail, men du har sikkert nok om ørene. Skriver herinde i håb om at en kan hjælpe.

Kan man ikke få vist output over hvad style filen hedder, på den pågældende enhed. Jeg har prøvet at tage noget af koden, der hvor den angiver hvilken css fil - Men det giver blot en fejl.

<?php
    echo .$browserstr['browser'].$browserstr['bits'].'-'.$os.'-'.$browserstr['osversion']
    ?>

Hvis jeg skal angive hvilket stylesheet håndholdte enheder får (Såsom PDA, Tablets og Mobiltelefoner), hvordan gøres det så nemt? Der er jo ikke rigtig mulighed for at vise kildekoden, for at se hvilken css fil det er.

Jeg har prøvet mig lidt frem, men det virker ikke rigtig. F.eks viser min Nokia N9:

"Din browser er: webkit safari i version unknown du kører i en 16 bits version"

Det har jeg fået ved at skrive:
<?php
    echo " <p class='browserinfo'>Din browser er: <i>".$browserstr['browser']."</i> i version <i>".$browserstr['browserversion']."</i> du kører <i>".$browserstr['os']."</i> i en <i>".$browserstr['bits']. "</i> bits version</p>";
?>

I toppen, for at angive hvilket stylesheet har jeg:
<?php echo "<link type='text/css' href='css/".$browserstr['browser'].$browserstr['bits'].'-'.$os.'-'.$browserstr['osversion'].".css' rel='stylesheet' media='screen' />";?>

Har prøvet med dette:
webkit safari -16.css
webkit safari - -16.css
webkit safari16.css
webkit safari - unknown-16.css
webkit safari - unknown - 16.css

I android viser den at den bruger en linux dist, med 32 bit. Det virker egentlig lidt underligt når det oprindelig script, vidst nok godt kunne vise android enheder.

Mvh. Michael Bay Sørensen
Avatar billede olsensweb.dk Ekspert
28. juni 2012 - 20:30 #50
google http_user_agent android browser læs disse 4 link
http://davidwalsh.name/detect-android
http://www.gethifi.com/blog/three-ways-to-target-mobile-devices
http://www.9lessons.info/2010/09/redirect-mobile-devices-with-php.html

tilføj det fremhævet (utested) i css_browser_selector_modif.php
// platform                
if(strstr($ua, 'j2me')) {
    $os = 'mobile';       
} else if(strstr($ua, 'android')) {
    $os = 'android';
} else if(strstr($ua, 'iphone')) {
    $os = 'iphone';       
} else if(strstr($ua, 'ipod')) {
    $os = 'ipod';       
} else if(strstr($ua, 'mac')) {
    $os = 'mac';       
} else if(strstr($ua, 'darwin')) {
    $os = 'mac';       
} else if(strstr($ua, 'webtv')) {
    $os = 'webtv';       
} else if(strstr($ua, 'win')) {
    $os = 'win';       
} else if(strstr($ua, 'freebsd')) {
    $os = 'freebsd';       
} else if(strstr($ua, 'x11') || strstr($ua, 'linux')) {
    $os = 'linux';       
}


en tanke, skulle denne
if(strstr($ua, 'j2me')) {
    $os = 'mobile';       
}
ikke se sådan ud
if( strstr($ua, 'mobile') ) {
    $os = 'mobile';       
}
så ville den selvføgelig slå alle mobile enheder sammen til mobile, uden at finde ud af om det er ipad, iphone, android.., men dt kommer an på ens detaljerings grad

>I android viser den at den bruger en linux dist, med 32 bit. Det virker egentlig lidt underligt når det oprindelig script, vidst nok godt kunne vise android enheder.
årsagen til at den skriver linux er at din user-agent string ser nogle lunde sådan ud
Mozilla/5.0 (Linux; U; Android 2.1-update1; en-in; HTC_Wildfire_A3333 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari

dvs sige den finder orderet linux, og ser det som OS, "der gør den oprindelige også" så du skal være opmærksom på hvilke række følge du tester for OS
og da linux er et af de OS'er vi tester på om det er 32 eller 64 bit, siger den det er 32 bit da den ikke kan finde x86_64, se i switch($os) sectionen


>Hvis jeg skal angive hvilket stylesheet håndholdte enheder får
lidt hurtig omskrivning af script fra http://www.9lessons.info/2010/09/redirect-mobile-devices-with-php.html
i index filen
<?php
$os=$browserstr['os'];

if ($os=="iphone" || $os=="android" || $os=="ipod" || $os=="mobile" )
{
header('Location: http://mobile.site.com/');
//OR
echo "<script>window.location='http://mobile.site.com'</script>";
}
?>
Avatar billede olsensweb.dk Ekspert
28. juni 2012 - 20:34 #51
header('Location: http://mobile.site.com/ (...));
//OR
echo "<script>window.location='http://mobile.site.com'</ (...)

skal vel være noget med
<link rel="stylesheet" type="text/css" media="screen" href="/css/mobile.css" />
Avatar billede mbs- Nybegynder
05. juli 2012 - 21:23 #52
#50 - Har læst de links du har givet mig, og kan se muligheden i http://www.gethifi.com/blog/three-ways-to-target-mobile-devices men det er mere fordi det KUN er php.

Kan læse mig frem til at man skal checke det for hvert "produkt", og det må jeg jo egentlig bare gøre. For hvad jeg kan se på min side, så er det kun en smule Android, en del iPhone og en brøkdel Nokia N9 (MeeGo) der giver problemer. Desuden vil jeg være træt af en omdirigering til en helt anden side. Derfor jeg er på udkig efter .css løsningen.

"...så ville den selvføgelig slå alle mobile enheder sammen til mobile, uden at finde ud af om det er ipad, iphone, android.., men dt kommer an på ens detaljerings grad"
Det ville sige jeg ikke kan bruge det til noget, right? For jeg vil meget gerne ha så jeg kan lave forskelle mellem iPad, iPhone og Android

"...og da linux er et af de OS'er vi tester på om det er 32 eller 64 bit, siger den det er 32 bit da den ikke kan finde x86_64, se i switch($os) sectionen"
Ahh okay. Umiddelbart så har jeg jo heller ikke fundet nogle dist med 16 bit, i Linux.

"...lidt hurtig omskrivning af script fra http://www.9lessons.info/ (...)
i index filen"
Men giver det mig mulighed for at vælge en anden .css fil ved f.eks Android, sammenlignet med iPad/iPhone?


Det var egentlig derfor jeg skrev om det ikke var muligt at få vist PRÆCIST hvilken .css fil Server Side scriptet vælger at angive, ved hver "produkt"
Altså lige nu viser den jo
"Din browser er: firefox i version 12 du kører win i en 64 bits version"
Hvis nu den skrev PRÆCIST hvilken css fil den har angivet til den pågældende browser/os, så vil jeg vide med sikkerhed hvad jeg skal kalde filerne, også prøve mig frem.

F.eks som det er nu til Firefox, Windows7 med 64 bit - så hedder css filen "firefox64-win-7.css"

Med den løsning, vil jeg jo hurtig ku finde ud af hvad jeg kan, og hvad jeg ikke kan. F.eks hvis det lige pludselig var en Android der kom. Hvis du forstår?

F.eks "Android16--.css" eller hvad ved jeg.

Mvh. Michael
Avatar billede mbs- Nybegynder
26. juli 2012 - 12:41 #53
Ronny - jeg har brug for din hjælp hvis du har tid og alt det der.

Du må meget gerne svare, og som sagt før - så betaler jeg altså gerne.

Hvis der er en anden der kan hjælpe, vil jeg selvfølgelig også gerne betale ham/hende der kan klare mit problem. Er helt på bar bund.

Mvh. Michael Bay Sørensen
Avatar billede olsensweb.dk Ekspert
27. juli 2012 - 17:06 #54
man kunne kigge på http://dk.php.net/manual/en/function.get-browser.php , se notes, men den kan vist ikke finde ud af om det er 32/64 bit, eller mobile

hvilke browsere er der problem med ??, det er jo kun dem der skal have en seperat fil.
du kan regne ud hvad css_browser_selector_modif.php retunerer, hvis du kigger på coden eller teste det, og user-agent string for pågældende browser

test code
<?php    
    include "css_browser_selector_modif.php";
    // browser strings   
   
    // $ua = "Mozilla/5.0 (Linux; U; Android 2.1-update1; en-in; HTC_Wildfire_A3333 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari";
    // $ua = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)";
    // $ua = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1041.0 Safari/535.21";
    // $ua = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:14.0) Gecko/20120405 Firefox/14.0a1";
    // $ua = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21";
    $browserstr=css_browser_selector($ua);   
    print_r($browserstr);
   
    //$browser=$browserstr['browser'];
    //$os=$browserstr['os'];   
?>


hvad du skal kalde filerne er jo afh af hvilke rækkefølge, du sammensætter variablerne i.
for at få indput fra andre bør du nok oprette et nyt spm evt med referance til dette spm
Avatar billede mbs- Nybegynder
30. juli 2012 - 14:34 #55
->hvilke browsere er der problem med ??
..... Jeg har problemer med Telefoner i Apple/Android og Apple/Android tablets. Det er faktisk det eneste. Men jeg vil prøve og oprette en ny tråd for at få noget mere input. Du har hvertfald været til en stor hjælp! Mange tak

Både Chrome, Firefox og IE virker i:
Win7 32
Win7 64
WinXP 32
WinXP 64
Linux 32
Linux 64

Har ikke testet på Mac endnu, men det virkede sidst.
Avatar billede olsensweb.dk Ekspert
30. juli 2012 - 16:03 #56
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester