Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [Problema]Script riconoscimento browser

    Premesse:
    Sono alle prime armi con PHP. Tempo fa avevo fatto questo script che era stato richiesto da un tipo su un forum, lo scritto in 5 minuti e l'ho postato. Andandolo a provare con i vari borwser funzionava correttamente ma con Opera non mi funziona enon riesco a capire perchè. E' solo un dubbio...

    ecco qui il codice:
    Codice PHP:
    <html>
    <head>
    <title>Prova</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <?php 
    $frase 
    "Stai usando";
    if(
    strpos($_SERVER["HTTP_USER_AGENT"], "Gecko")) {
    $browser "$frase Firefox ";
    }

    elseif(
    strpos($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    $browser "$frase Internet Explorer";
    }

    elseif(
    strpos($_SERVER["HTTP_USER_AGENT"], "Mozilla")) {
    $browser "$frase Mozilla";
    }
    elseif(
    strpos($_SERVER["HTTP_USER_AGENT"], "Netsacpe")) {
    $browser "$frase Netsacpe";
    }
    elseif(
    strpos($_SERVER["HTTP_USER_AGENT"], "Opera")) {
    $browser "$frase Opera";
    }
    elseif(
    strpos($_SERVER["HTTP_USER_AGENT"], "Googlebot")) {
    $browser "$frase Googlebot";
    }
    elseif(
    strpos($_SERVER["HTTP_USER_AGENT"], "Konqueror")) {
    $browser "$frase Konqueror";
    }
    elseif(
    strpos($_SERVER["HTTP_USER_AGENT"], "Safari")) {
    $browser "$frase Safari";
    }
    else{  
    $browser "IL tuo browswer non è stato riconosciuto";
    }
    ?>
    <?php
    echo"<script language=\"JavaScript\">";
    echo
    "alert(\"$browser ";
    echo
    "\")";
    echo
    "</script>\n";
    echo
    "<noscript>";
    echo
    "$browser";
    echo
    "</noscript>\n";
    ?>
    </body>
    </html>
    In pratica lo script apre un alert javascript in cui viene scritto il borwser utilizzato dal visitore. Nel caso in cui il browser non sia tra quelli prsenti nello script esce il messaggio : "Il tuo browswer non è stato riconosciuto". Se poi non è attivo javascript stampo nella pagina il messaggio.
    Ecco qui la stringa incriminata:
    Codice PHP:
    elseif(strpos($_SERVER["HTTP_USER_AGENT"], "Opera")) {
    $browser "$frase Opera";

    Non riesco proprio a capire perchè con opera mi dia il messaggio di browser non trovato.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    241
    non saprei cosa consigliarti, l'unica cosa che posso fare per te e indicarti un articolo che forse può interessarti o chiarirti le idee:

    http://pro.html.it/articoli/id_206/i...pag_1/pag.html

    o magari no :rollo:

  3. #3
    quell'articolo tratta di javascript mentre a me interessava fare lo script in PHP, nel mio codice PHP ho usato lo javascript solo perchè mie era stato richiesto di fare aprire il risulatato in un alert, ma a me molto onestamente non piace utilizzare lo javascrtip

    grazie lo stesso

  4. #4

  5. #5
    grazie leggerò con attenzione questo articolo, ma se qualcuno riesce a spiegarmi cosa non va nello script e perchè non riconosce opera glienesarei molto grato

  6. #6
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    Guarda per quanto ne so io, Opera fino ad una certa versione (mi sembra prima della 8) aveva un impostazione di default che faceva si che si presentasse come MSIE nelle richieste inviate ai server, per visualizzare i (mal)siti che impediscono di entrare a browser diversi da IE.

    Se è questo il motivo puoi averne la conferma stampando tutta la variabile $_SERVER["HTTP_USER_AGENT"] nello script e richiamandolo con il browser incriminato.

    Ciao.

    P.s. questa impostazione si poteva cambiare.

  7. #7
    nell'ultimo opera c'è questa possibilità ma non è impostata di default. avevo già provato a stampare $_SERVER["HTTP_USER_AGENT"] e mi usciva Opera/8.02 (Windows NT 5.1; U; it) ma anche copiando ed incollando questo valore nello script mi dice sempre che non riconosce il browser

  8. #8
    getBrowser a volte e' disabilitato e su win non va, vedi se questa puo' tornarti utile

    demo

    classe

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    si ma la cosa che non capisco è che lo script non riconosce solamente opera mentre con gli altri browser (mozilla, firefox,explorer...) funziona perfetttamente

  10. #10
    esiste un ordine abbastanza preciso conla quale controllare il browser ... in questo ordine, Internet Explorer dovrebbe stare in fondo alla lista degli else if poiche' tanti altri browser prima di lui hanno la scritta MSIE nell' agent ed Opera e'ì uno di questi, anche se e' presente il nome Opera, la scritta compatible MSIE c'e' quindi l' if strpos($_SERVER["HTTP_USER_AGENT"], "MSIE") sara' vera, quindi il risultato sara' Internet Explorer ... la mia classe ha gia' un ordine abbastanza preciso, per questo non commette questo errore.

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.