get_browser per sapere dettagli sullo stato del javascript del browser utente

otto9due

Utente Attivo
22 Feb 2014
591
25
28
Dovrei capire se è possibile tramite questa funzione (o tramite altro metodo..), sapere se il browser in uso dall'utente ha o meno il javascript attivo e se lo gestisce. In caso positivo, faccio partire un alert altrimenti un semplice echo..
Secondo voi.. si può fare?

PHP:
<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

Il risultato è questo:

PHP:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

Tramite questo risultato dovrei riuscire ad estrarmi dall'array il valore di [javascript] => 1 e poi procedere con un controllo..
 
Dovrei capire se è possibile tramite questa funzione (o tramite altro metodo..), sapere se il browser in uso dall'utente ha o meno il javascript attivo e se lo gestisce. In caso positivo, faccio partire un alert altrimenti un semplice echo..
Secondo voi.. si può fare?

PHP:
<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

Il risultato è questo:

PHP:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

Tramite questo risultato dovrei riuscire ad estrarmi dall'array il valore di [javascript] => 1 e poi procedere con un controllo..

Si può fare:

if($browser["javascript"] == 1) { echo "Hai abilitato javascript"; } else echo "<script>alert('Perfavore, abilita JavaScript!');</script>";
 
Il problema è che purtroppo non riesco ad eseguire get_browser(), ho provato la scorsa mattina ma mi da un errore..
 
ciao

ho provato a incollare l'intero codice e mi funziona perfettamente

che errore ti dà?
 
Codice:
Warning: get_browser(): browscap ini directive not set in /web/htdocs/www.miosito.it/home/test.php on line 4
 
Mi sa che che mi conviene fare una cosa del genere..
HTML:
<noscript>JavaScript non è abilitato..</noscript>
 
Due cose.

1) L'errore che ti ritorna get_browser()
Codice:
Warning: get_browser(): browscap ini directive not set in /web/htdocs/www.miosito.it/home/test.php on line 4
browscap.ini è un file che contiene le definizioni di riconoscimento a cui la funzione fa riferimento, è compito del provider configurare in modo appropriato PHP.
Potresti provare ad aprire un ticket per chiedere se potrebbero eventualmente sistemare questa faccenda.

2) Nel caso vuoi avvisare l'utente di abilitare javascript, avendo rilevato che non lo è, usare l'alert non ti produrrà alcun effetto perché javascript si presume essere.. disabilitato per l'appunto.


Comunque se il tuo provider non volesse provvedere a configurare il browscap.ini sul server, l'unica alternativa che ti resta è, come hai intuito, l'uso del tag noscript.
 
Comunque se il tuo provider non volesse provvedere a configurare il browscap.ini sul server, l'unica alternativa che ti resta è, come hai intuito, l'uso del tag noscript.

Spero provveda al più presto, per il resto, sto pensando seriamente di cambiare provider.. tutte queste limitazioni stanno iniziando a stancarmi..
Grazie per l'intervento :D ad entrambi
 

Discussioni simili