Visualizzazione risultati 1 fino 14 di 14

Discussione: Scoprire che browser usa il visitatore

  1. #1
    Guest

    Predefinito Scoprire che browser usa il visitatore

    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?

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Esiste la funzione getbrowser() che ti permette davvero di semplificarti la vita.
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    GIYF

    Con php usa la funzione getbrowser() (che è la cosa più semplice) oppure così:
    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])
    o in javascript (ad esempio per Firefox, ma nel link ci sono esempi per ogni browser):
    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])
    Edit: preceduto ;)
    Ultima modifica di comunitavirtuali : 30-07-2010 alle ore 09.47.19

  4. #4
    Guest

    Predefinito

    E se io tipo volessi fare in php che se il browser è firorox mi mostra un certo messaggio differente da Il tu Browser è: ecc?

  5. #5
    Guest

    Predefinito

    Sul sito linkato da miki c'è la risposta :)

    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
    ?>
    Più che copia/incolla, però, bisognerebbe iniziare a capire qualcosa ^_^
    Citazione Originalmente inviato da me
    Rare volte forniamo pappa pronta, di solito insegnamo a cucianarla

  6. #6
    Guest

    Predefinito

    Si, infatti.. Non ci si capisce proprio niente..

  7. #7
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Scusate ma perchè complicarvi la vita?

    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";

    }

    ?>
    Ovviamente questo è un esempio terra terra nel senso che vengono usate proprio le basi di PHP.
    Apprezzi l'aiuto? Offrimi un caffè!

  8. #8
    Guest

    Predefinito

    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?

  9. #9
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    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";

    }

    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  10. #10
    Guest

    Predefinito

    Niente, non mostra nulla!

  11. #11
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Ricercando sul forum, avresti potuto trovare questo: http://forum.it.altervista.org/php-m...tml#post659030

    Citazione Originalmente inviato da guest Visualizza messaggio
    get_browser(), credo non funzioni su altervista...
    Ho provato ad utilizzarla, e grazie ad error_reporting(E_ALL), ho ricevuto queto avvertimento:
    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

  12. #12
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    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.
    Apprezzi l'aiuto? Offrimi un caffè!

  13. #13
    Guest

    Predefinito

    E come và configurato questo php.ini?

  14. #14
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Essendo AlterVista un hosting condiviso non puoi, però AlterVista potrebbe farlo in quanto, come ho già detto, configurare ed abilitare questo file non è pericoloso nè provoca danni a terze parti.
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •