Salve, ho effettuato la ricerca ma invano. Vorrei sapere come possiamo scoprire che browser usa il visitatore? Faccio questa domanda perchè il mio sito con Firefox dà un bug e vorrei risolverlo mettendo un if(browser è firefox 3.0). E' possibile?
Salve, ho effettuato la ricerca ma invano. Vorrei sapere come possiamo scoprire che browser usa il visitatore? Faccio questa domanda perchè il mio sito con Firefox dà un bug e vorrei risolverlo mettendo un if(browser è firefox 3.0). E' possibile?
GIYF
Con php usa la funzione getbrowser() (che è la cosa più semplice) oppure così:
o in javascript (ad esempio per Firefox, ma nel link ci sono esempi per ogni browser):Codice PHP:
<?php
//Controlla il tipo di browser
function GetBrowser()
{
$browser = array(
'Lynx' => 'Lynx',
'Opera' => 'Opera',
'WebTV' => 'WebTV',
'Konqueror' => 'Konqueror',
'bot' => 'Bot',
'Google' => 'Bot',
'slurp' => 'Bot',
'scooter' => 'Bot',
'spider' => 'Bot',
'infoseek' => 'Bot',
'MSIE' => 'Internet Explorer',
'Firefox' => 'FireFox',
'Nav' => 'Netscape',
'Gold' => 'Netscape',
'x11' => 'Netscape',
'Netscape' => 'Netscape'
);
foreach($browser as $chiave => $valore)
{
if(strpos($_SERVER['HTTP_USER_AGENT'], $chiave ))
{
return $valore;
}
}
return 'Altro';
}
//esempio applicato
echo "Il tu Browser è: <b>" . GetBrowser() ."</b>";
?>
([URL="http://www.sastgroup.com/script-php/funzione-php-per-sapere-con-quale-browser-lutente-sta-visitando-il-tuo-sito"]fonte[/URL])
Edit: preceduto ;)Codice HTML:<script type="text/javascript"> if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits); var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number if (ffversion>=3) document.write("You're using FF 3.x or above") else if (ffversion>=2) document.write("You're using FF 2.x") else if (ffversion>=1) document.write("You're using FF 1.x") } else document.write("n/a") </script> ([URL="http://www.quirksmode.org/js/detect.html"]fonte[/URL])
Ultima modifica di comunitavirtuali : 30-07-2010 alle ore 09.47.19
E se io tipo volessi fare in php che se il browser è firorox mi mostra un certo messaggio differente da Il tu Browser è: ecc?
Sul sito linkato da miki c'è la risposta :)
Più che copia/incolla, però, bisognerebbe iniziare a capire qualcosa ^_^Codice PHP:
<?PHP
class Browser extends BaseObjects_PropertyArray
{
private $props = array("Version" => "0.0.0",
"Name" => "unknown",
"Agent" => "unknown",
"AllowsHeaderRedirect" => true) ;
public function __Construct()
{
$browsers = array("firefox", "msie", "opera", "chrome", "safari",
"mozilla", "seamonkey", "konqueror", "netscape",
"gecko", "navigator", "mosaic", "lynx", "amaya",
"omniweb", "avant", "camino", "flock", "aol");
$this->Agent = strtolower($_SERVER['HTTP_USER_AGENT']);
foreach($browsers as $browser)
{
if (preg_match("#($browser)[/ ]?([0-9.]*)#", $this->Agent, $match))
{
$this->Name = $match[1] ;
$this->Version = $match[2] ;
break ;
}
}
$this->AllowsHeaderRedirect = !($this->Name == "msie" && $this->Version < 7) ;
}
public function __Get($name)
{
if (!array_key_exists($name, $this->props))
{
die "No such property or function $name)" ;
}
return $this->props[$name] ;
}
}
$browser = new Browser ;
echo "$Browser->Name $Browser->Version" ; //questo stampa il nome del browser
?>
Originalmente inviato da me
Si, infatti.. Non ci si capisce proprio niente..
Scusate ma perchè complicarvi la vita?
Ovviamente questo è un esempio terra terra nel senso che vengono usate proprio le basi di PHP.Codice PHP:
<?php
$browser = get_browser($_SERVER['HTTP_USER_AGENT'],true);
if(strtolower($browser['browser']) == "firefox"){
echo "Messaggio per FireFox";
}else{
echo "Messaggio per altri browser";
}
?>
Si, ma come faccio io a sapere i nomi che get_browser dà ai browser e la loro versione? Esempio. Se io volessi fare un messaggio soltanto per explorer 8?
La documentazione di quella funzione ti dice tutte le variabili ed i nomi utilizzabili, poi la funzione non è che da nomi strani ai browser...cioè voglio dire che se un browser si chiama "Palala" (inventato ovviamente) sicuramente PHP non lo chiamerà "Blu BRO" (anch'esso inventato).
Codice PHP:
<?php
$browser = get_browser($_SERVER['HTTP_USER_AGENT'],true);
if(strtolower($browser['browser']) == "internet" && $browser['version'] == "8"){
echo "Messaggio per IE 8";
}
?>
Niente, non mostra nulla!
Ricercando sul forum, avresti potuto trovare questo: http://forum.it.altervista.org/php-m...tml#post659030
Comunque io preferisco usare questa classe:
Codice PHP:
<?php
class Browser {
private $browsers = array(), $browser;
public function __construct($ua = false) {
$ua = strtolower($ua ? $ua : $_SERVER['HTTP_USER_AGENT']);
if(preg_match('/(arora|camino|chrome|epiphany|fennec|flock|galeon|omniweb)\/([a-z0-9\.]+)/', $ua, $m)) {
$this->browsers['is' . ucfirst($m[1])] = $m[2];
$this->browser = array($m[1], $m[2]);
} else if(preg_match('/(camino|firefox|opera|safari|konqueror|seamonkey|dillo|ibrowse|iceape|icecat|iceweasel|icab|ice|kazehakase|k-meleon)\/([a-z0-9\.]+)/', $ua, $m)) {
$this->browsers['is' . ucfirst($m[1])] = $m[2];
$this->browser = array($m[1], $m[2]);
} else if(preg_match('/msie\s+([0-9\.]+)/', $ua, $m)) {
$this->browsers['isIe'] = $m[2];
$this->browser = array('ie', $m[2]);
}
}
public function __get($name) {
return isset($this->browsers[$name]) ? $this->browsers[$name] : false;
}
public function detect($t = false) {
$b = $t === false ? $this->browser : $this->browser[$t];
return $b;
}
}
$browser = new Browser();
// puoi usare questa sintassi: $browser->isNomebrowser
if($browser->isFirefox) {
echo 'Usi Firefox ', $browser->isFirefox;
} else {
echo 'Non firefox';
}
// oppure
$nome = $browser->detect(0); // firefox
$versione = $browser->detect(1); // 3.6.8
// $browser->detect() => array(nome, versione)
switch($nome) {
case 'firefox':
// firefox
break;
case 'opera':
// opera
break;
}
?>
Ultima modifica di javascripter : 30-07-2010 alle ore 15.50.24
Si infatti vi chiedo scusa, nella documentazione non avevo letto che necessitava di un particolare file di configurazione ini che doveva poi essere specificato ed abilitato direttamente nel php.ini.
Certo che però penso questa sia una delle poche opzioni che possiamo abilitare su AlterVista perchè a quanto ho capito non comporta danni nè ha problemi di sicurezza...l'unica "noia" forse è quella che ogni tanto andrebbe aggiornato il file di configurazione che riconosce i browser.
E come và configurato questo php.ini?