Visualizzazione risultati 1 fino 14 di 14

Discussione: [php] Problema riconoscimento browser

  1. #1
    Guest

    Predefinito [php] Problema riconoscimento browser

    Ciao a tutti, avrei un problema nella creazione di uno script php,vorrei creare uno script php che detecta il browser utilizzato dal visitatore e poi va a scrivere il risultato in un file...ho provato così ma non funziona:
    Codice:
    <?
    // Scrivo le variabili necessarie, creo il file browser.html:
    $apro=fopen('browser.html', 'a+'); 
    $dascrivere = Il Browser utilizzato è: $browser;
    $browser = $_SERVER['HTTP_USER_AGENT'];
    // Scrivo nel file browser.html le informazioni raccolte:
    fwrite($apro,$dascrivere); 
    
    ?>
    Altervista mi da errore nella quarta riga ovvero in questa:
    Codice:
    $dascrivere = Il Browser utilizzato è: $browser;
    Sicuramente ho fatto un'errore banale...non sono ancora pratico di php, potete correggermi?
    Grazie a tutti

  2. #2
    Guest

    Predefinito

    Ovvio, devi mettere le virgolette, e poi, browser in quel punto nemmeno è inizializzata
    Codice PHP:
    <?
    // Scrivo le variabili necessarie, creo il file browser.html:
    $apro=fopen('browser.html', 'a+');
    $browser = $_SERVER['HTTP_USER_AGENT'];
    $dascrivere = "Il Browser utilizzato è:". $browser;
    // Scrivo nel file browser.html le informazioni raccolte:
    fwrite($apro,$dascrivere);

    fclose($apro):

    ?>
    Inoltre in questo modo non ottieni solo il browser ma tutto l'user agent che contiene molte più informazioni.

  3. #3
    Guest

    Predefinito

    Grazie Stoner...sapevo di avere fatto un errore stupido...vuol dire che la prossima volta non lo faccio più e imparo a poco a poco
    comunque qui:
    $dascrivere = "Il Browser utilizzato è:". $browser;
    le virgolette perchè si mettono solo all'inizio della variabile? si fa sempre così in qualsiasi modo dovevo utilizzare la variabile?
    e poi esiste un modo per salvare il solo browser?
    Ultima modifica di wlmtricks : 05-04-2009 alle ore 16.50.30

  4. #4
    Guest

    Predefinito

    Ah.. che bello.. ho appena scoperto questa funzione.

    Per quanto riguarda la prima domanda, è che la prima parte 'il browser utilizzato è:' è una stringa e quindi va messa tra virgolette. (ti consiglierei di studiarti un pò le basi).

    Riepilogando il tuo codice verrebbe
    Codice PHP:
    <?
    // Scrivo le variabili necessarie, creo il file browser.html:
    $apro=fopen('browser.html', 'a+');
    $browser = get_browser(null, true);
    $dascrivere = "Il Browser utilizzato è:". $browser['browser'];
    // Scrivo nel file browser.html le informazioni raccolte:
    fwrite($apro,$dascrivere);

    fclose($apro):

    ?>
    ciao.

  5. #5
    Guest

    Predefinito

    get_browser(), credo non funzioni su altervista...
    Ho provato ad utilizzarla, e grazie ad error_reporting(E_ALL), ho ricevuto queto avvertimento:
    Citazione Originalmente inviato da error_reporting(E_ALL)
    Warning: get_browser() [function.get-browser]: browscap ini directive not set

  6. #6
    Guest

    Predefinito

    #edit, non avevo letto il messaggio d'errore
    In alternativa può fare così
    Codice PHP:

    <?php

    function browser() {
    $browsers = array(
    'Opera 9' => 'Opera/9\.[0-9]+',
    'Opera 10' => 'Opera/10\.[0-9]+',
    'Opera' => 'Opera',
    'Firefox'=> '(Firebird)|(Firefox)',
    'Galeon' => 'Galeon',
    'Chrome' => 'Chrome',
    'Safari' => 'Safari',
    'MyIE'=>'MyIE',
    'Lynx' => 'Lynx',
    'Konqueror'=>'Konqueror',
    'SearchBot' => '(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)',
    'IE 6' => '(MSIE 6\.[0-9]+)',
    'IE 5' => '(MSIE 5\.[0-9]+)',
    'IE 4' => '(MSIE 4\.[0-9]+)',
    'IE 7' => '(MSIE 7\.[0-9]+)',
    'IE 8' => '(MSIE 8\.[0-9]+)',
    'Netscape' => '(Mozilla/4\.75)|(Netscape6)|(Mozilla/4\.08)|(Mozilla/4\.5)|(Mozilla/4\.6)|(Mozilla/4\.79)',
    'Mozilla'=>'Gecko',
    );

    foreach(
    $browsers as $browser=>$valore)
    {
    if (
    eregi($valore, $_SERVER["HTTP_USER_AGENT"]))
    return
    $browser;
    }
    return
    'Sconosciuto';
    }

    // Scrivo le variabili necessarie, creo il file browser.html:
    $apro=fopen('browser.html', 'a+');
    $dascrivere = "Il Browser utilizzato è:". browser();
    // Scrivo nel file browser.html le informazioni raccolte:
    fwrite($apro,$dascrivere);

    fclose($apro):

    ?>
    Ultima modifica di stoner : 05-04-2009 alle ore 17.05.04

  7. #7
    Guest

    Predefinito

    PHP5, lo ho attivato da quando sono su AV, ma niente non funziona....
    Guarda qui: http://nokiagames.altervista.org/my.php

  8. #8
    Guest

    Predefinito

    si.. scusa non avevo letto il messaggio d'errore, ho modificato il post.

  9. #9
    Guest

    Predefinito

    Ok, fa niente!
    Comunque a me non serve, giusto per avvisare l'autore (e te ovviamente).
    In alternativa io utilizzo:
    Codice PHP:
    if(eregi("firefox",$_SERVER['HTTP_USER_AGENT'])) {
    $browser = "Firefox";
    }
    /* etc etc */

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da stoner Visualizza messaggio
    #edit, non avevo letto il messaggio d'errore
    In alternativa può fare così
    Codice PHP:

    <?php

    function browser() {
    $browsers = array(
    'Opera 9' => 'Opera/9\.[0-9]+',
    'Opera 10' => 'Opera/10\.[0-9]+',
    'Opera' => 'Opera',
    'Firefox'=> '(Firebird)|(Firefox)',
    'Galeon' => 'Galeon',
    'Chrome' => 'Chrome',
    'Safari' => 'Safari',
    'MyIE'=>'MyIE',
    'Lynx' => 'Lynx',
    'Konqueror'=>'Konqueror',
    'SearchBot' => '(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)',
    'IE 6' => '(MSIE 6\.[0-9]+)',
    'IE 5' => '(MSIE 5\.[0-9]+)',
    'IE 4' => '(MSIE 4\.[0-9]+)',
    'IE 7' => '(MSIE 7\.[0-9]+)',
    'IE 8' => '(MSIE 8\.[0-9]+)',
    'Netscape' => '(Mozilla/4\.75)|(Netscape6)|(Mozilla/4\.08)|(Mozilla/4\.5)|(Mozilla/4\.6)|(Mozilla/4\.79)',
    'Mozilla'=>'Gecko',
    );

    foreach(
    $browsers as $browser=>$valore)
    {
    if (
    eregi($valore, $_SERVER["HTTP_USER_AGENT"]))
    return
    $browser;
    }
    return
    'Sconosciuto';
    }

    // Scrivo le variabili necessarie, creo il file browser.html:
    $apro=fopen('browser.html', 'a+');
    $dascrivere = "Il Browser utilizzato è:". browser();
    // Scrivo nel file browser.html le informazioni raccolte:
    fwrite($apro,$dascrivere);

    fclose($apro):

    ?>
    c'è errore nella linea 39...non so cosa

  11. #11
    Guest

    Predefinito

    A si, ci sono i : invece del ; a fine riga.

  12. #12
    Guest

    Predefinito

    Ora funziona:
    però se vorrei fare la stessa cosa per il sistema operativo dovrei fare così no?:
    Codice PHP:
    <?php

    function browser() {
    $browsers = array(
    'Opera 9' => 'Opera/9\.[0-9]+',
    'Opera 10' => 'Opera/10\.[0-9]+',
    'Opera' => 'Opera',
    'Firefox'=> '(Firebird)|(Firefox)',
    'Galeon' => 'Galeon',
    'Chrome' => 'Chrome',
    'Safari' => 'Safari',
    'MyIE'=>'MyIE',
    'Lynx' => 'Lynx',
    'Konqueror'=>'Konqueror',
    'SearchBot' => '(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)',
    'IE 6' => '(MSIE 6\.[0-9]+)',
    'IE 5' => '(MSIE 5\.[0-9]+)',
    'IE 4' => '(MSIE 4\.[0-9]+)',
    'IE 7' => '(MSIE 7\.[0-9]+)',
    'IE 8' => '(MSIE 8\.[0-9]+)',
    'Netscape' => '(Mozilla/4\.75)|(Netscape6)|(Mozilla/4\.08)|(Mozilla/4\.5)|(Mozilla/4\.6)|(Mozilla/4\.79)',
    'Mozilla'=>'Gecko',
    );

    foreach(
    $browsers as $browser=>$valore)
    {
    if (
    eregi($valore, $_SERVER["HTTP_USER_AGENT"]))
    return
    $browser;
    }
    return
    'Sconosciuto';
    }

    function
    GetSistemaOperativo()
    {
    $os = array(
    'Windows NT 5.1' => 'Windows XP',
    'Windows NT 5.0' => 'Windows 2000',
    'Windows NT 4.90' => 'Windows ME',
    'Win95' => 'Windows 95',
    'Win98' => 'Windows 98',
    'Windows NT 5.2' => 'Windows NET',
    'WinNT4.0' => 'Windows NT',
    'Mac' => 'Mac',
    'PPC' => 'Mac',
    'Linux' => 'Linux',
    'FreeBSD' => 'FreeBSD',
    'SunOS' => 'SunOS',
    'Irix' => 'Irix',
    'BeOS' => 'BeOS',
    'OS/2' => 'OS/2',
    'AIX' => 'AIX',
    );

    foreach(
    $os as $chiave => $valore)
    {
    if(
    strpos($_SERVER['HTTP_USER_AGENT'], $chiave))
    {
    return
    $valore;
    }
    }

    return
    'Altro';
    }

    // Scrivo le variabili necessarie, creo il file browser.html:
    $apro=fopen('browser.html', 'a+');
    $dascrivere = "Il Browser utilizzato è:". browser() e il os ". GetSistemaOperativo();
    // Scrivo nel file browser.html le informazioni raccolte:
    fwrite(
    $apro,$dascrivere);

    fclose(
    $apro);

    ?>
    Ho provato e mi da errore nella linea 67 ovvero:

    Codice PHP:
    $dascrivere = "Il Browser utilizzato è:". browser() e il os ". GetSistemaOperativo();
    ...come risolvo?
    Ultima modifica di wlmtricks : 05-04-2009 alle ore 17.31.40

  13. #13
    Guest

    Predefinito

    Codice PHP:
    $dascrivere = "Il Browser utilizzato è:". browser()." e il os ". GetSistemaOperativo();

  14. #14
    Guest

    Predefinito

    La soluzione da te proposta funziona, ero comunque riuscito a risolvere cosi:

    Codice PHP:
    <?php

    // Scrivo le variabili necessarie, creo il file browser.html:
    $apro=fopen('browser.html', 'a+');
    $browser = "Il Browser utilizzato è:". browser();
    $os = "Il sist opera è ". GetSistemaOperativo();
    $dascrivere = $browser . $os
    // Scrivo nel file browser.html le informazioni raccolte:
    fwrite($apro,$dascrivere);

    fclose($apro);

    ?>
    Il risultato e comunque lo stesso. Grazie per il tuo aiuto

Regole di scrittura

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