Avatar billede moddi100 Seniormester
13. november 2008 - 16:51 Der er 9 kommentarer og
1 løsning

Tjekke serverside om javascript er slået til

Hej

Er det muligt at tjekke med php, om javascript er slået til eller fra?

- Morten
Avatar billede showsource Seniormester
13. november 2008 - 17:32 #1
nix
Avatar billede showsource Seniormester
13. november 2008 - 17:33 #2
Men en go' ting er jo altid at bruge

<noscript>
Slå javascript til i din browser for at få det fulde udbytte af siden !
</noscript>

et eller andet sted på din side.
Avatar billede moddi100 Seniormester
13. november 2008 - 17:42 #3
Jeg ville gerne kunne gemme antallet af besøgende der ikke har javascript slået til. Men jeg kan næsten regne ud, at jeg bliver nødt til at lave det i en blanding af javascript og php...

Hvordan tror du w3schools har registreret dette?
http://www.w3schools.com/browsers/browsers_stats.asp
Avatar billede showsource Seniormester
13. november 2008 - 17:47 #4
De har vel brugt en iframe inden i <noscript> tag ?
Avatar billede moddi100 Seniormester
13. november 2008 - 17:57 #5
Ikke utænkeligt
Avatar billede olebole Juniormester
14. november 2008 - 13:10 #6
<ole>

Tager man hensyn til det generelle troværdighedsniveau på w3schools.com i betragtning, er der ingen grund til at hæfte særlig lid til hans statistikker. F.eks. er der ingen, der siger, hans resultater er renset for forskellige former for robotter - og hvis de er, hvor grundigt, det så er gjort  ;o)

Du kan evt. overveje et scenarium à la:

1) Sæt en session på brugeren og registrer brugerens session i en DB-tabel. Lad et felt 'js' have indholdet 0. Skriv samtidig session'ens id ud i en JS-variabel.
2) Lad JS sende en baggrundsforespørgsel til serveren og send brugerens session-id med. I rækken med det modtagne session-id opdateres feltet 'js' med tallet 1.

Forespørgslen kan foretages sådan:

<script type="text/javascript">
var sesID = "blabla_1234";  // Udskrevet af PHP
var oImg = new Image();
oImg.src = "js_test.php?sesID=" + sesID;
</script>

På denne måde ender du op med en DB-tabel med samtlige sessions, du har sat på dine brugere. Et mindre antal af disse rækker har js-feltet sat til 0 - repræsenterende klienter, der ikke understøtter JavaScript.

Den statistik kan du så tørre r*v i - eller alternativt kaste den efter hylende katte i gården. Den er absolut intet værd, sålænge du ikke renser den for spam robotter, søgemaskine robotter, og hvad der ellers kravler rundt og indekserer WWW.

En klog atomfysiker sagde engang:
    Det, vi oplever, er ikke naturen - men naturen, udsat for vores måde at spørge på.

Da f.eks. spam-botter aldrig ville kunne finde på at identificere sig selv som andet end en browser, vil den slags statistikker aldrig blive andet end dybt misvisende og ubrugelige til ethvert formål.

Dog kan man prøve at se på resultatet og holde det sammen med det faktum, at masser af robotter fiser rundt, uden vi kan kende dem som robotter. Det vil med de fleste af de resultater, jeg har set (og som både stammer fra egne og andres målinger), betyde, at antallet af reelle browsere uden JS-understøttelse formodentlig ligger væsentligt under én procent.

Antallet af det estimerede antal JS-disablede browsere er med andre ord så forsvindende lille, at det ikke er til at skelne fra usikkerheden ved selv den mest nøjagtige undersøgelse  =)

/mvh
</bole>
Avatar billede moddi100 Seniormester
14. november 2008 - 14:00 #7
Lyder ikke helt urimeligt det du siger der olebole.

Hvordan sorterer jeg bots fra? (Tænker her mest på søgemaskinernes)

Som regel kan det jo ses ud fra http_agent, men hvad skal jeg kigge efter?

$bots = array('googlebot');

foreach($bots as $bot)
{
  if(preg_match("%" . $bot . "%i", $_SERVER['http_agent']))
    return false;
}
Avatar billede moddi100 Seniormester
06. december 2008 - 14:53 #8
Ovenstående virker fint. Smid et svar olebole.
Avatar billede moddi100 Seniormester
07. december 2008 - 17:16 #9
Faldt lige over funktionen get_browser(), http://dk.php.net/manual/en/function.get-browser.php.

Går ud fra at der gælder det samme for javascript som for cookies, at den returnerede værdi kun viser om browseren understøtter det, og altså ikke om brugeren har slået det til?
Avatar billede moddi100 Seniormester
03. maj 2009 - 10:09 #10
Lukker her, da jeg ikke har fået noget svar...
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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