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

    -- $_SERVER['HTTP_USER_AGENT']; -- ..come impostare la verifica?

    Buongiorno a tutti,

    ..sto creando uno script che mi visualizzi un elemento della pagina web in base al browser utilizzato dall'utente. Nel mio caso mi serve sapere se l'utente utilizza Safari (che è l'unico browser che mi visualizza l'elemento in questione in modo "sbagliato" ).

    Problema dovuto a dimenticanza : come posso impostare la stringa di verifica?

    Vi prego non ditemi di utilizzare la funzione preg_match()


    La stringa identificativa di Safari è la seguente:

    Mozilla/5.0 (Windows; U; Windows NT 6.0; it-IT) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27

    ..e versioni diverse chiaramente.

    Come posso impostare lo script? Con quale funzione?


  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    se puoi mettere mano all'ini usa browscap
    sometimes it's just like teaching pigs how to fly

  3. #3
    No purtroppo non potrò farlo. Non per ora perlomeno.

    Una soluzione che posso adottare da me?

  4. #4
    con preg_match

    codice:
    if (preg_match('#Safari/(([0-9]+)\.([0-9]+)\.([0-9]+))#', $_SERVER['HTTP_USER_AGENT'], $matches) == true)
    {
        echo '<pre>';
        var_dump($matches);
        echo '</pre>'
    }
    con var dump vedi cosa ci sta dentro l'array e come è sistemato, dovrebbero essere presenti un totale di 5 valori:
    - il primo è la stringa per intero
    - il secondo è la versione per intero
    - il terzo, il quarto ed il quinto sono dei sotto gruppi e sono le singole parti della versione
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    il problema comunque è che non tutti i browser utilizzano una sintassi del tutto identica di quella stringa...

    fai quindi un bel pò di test sui vari browser prima di scoprire strane sorprese.

    ad ogni modo dovrebbero esserci in giro per la rete qualche vagonata di classi che fanno già quel lavoro
    sometimes it's just like teaching pigs how to fly

  6. #6
    Mmmmmmh ragazzi allora..a questo link sono presenti tutte le stringhe riguardanti l'User Agent Safari: http://www.useragentstring.com/_uas_Safari_version_.php


    ..ce ne sono tanti..tantissimi!

    Vi dico cosa volevo fare io: creare tante variabili per quante sono le sezioni della stringa.

    Ad esempio:

    La stringa di Safari abbiamo detto che è Mozilla/5.0 (Windows; U; Windows NT 6.0; it-IT) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27 ..

    ..bene..allora creo:

    Codice PHP:
    <?php

    $prima_parte 
    "Mozilla/5.0";  // Ho visto che questa parte è uguale per tutte le versioni.
    $seconda_parte "(Windows; U; Windows NT 6.0; it-IT)"// Questa parte varia..quindi si pone il problema: devo farci un espressione regolare? Non voglio!! :-(
    $terza_parte "AppleWebKit/533.20.25"// Idem come in $seconda_parte ..la situation qui può variare. (Piango)..

    // ecc, ecc.. per il resto della stringa..

    // e poi verifico se l'utente sta usando Safari (Una versione qualsiasi..non importa..basta che sia Safari)

    if ($se_tu_usi_safari) {

      echo (
    "Beccati questa bella impostazione Css per spostare l'elemento b**tar*** che non visualizzi come voglio io!";

    }
    ?>

    ...capito come vorrei fare? Però mi sa che qua ci esce un lavoraccio!


    PS: già vi ringrazio per la pazienza e il tempo che state dedicando a questa discussione

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    è totalmente un reinventare la ruota <.<

    io insisto, cerca una classe già fatta che se ne occupa, la rete ne è piena e sono testate.

    Almeno che tu non abbia una passione per la scrittura di espressioni regolari :P
    sometimes it's just like teaching pigs how to fly

  8. #8
    Idea!

    Oppure posso creare degli array con all'interno le varie sezioni delle stringhe di Safari!! No??

    Esempio:

    Codice PHP:
    <?php

    $prima_parte 
    = array('Mozilla/5.0'); // Dicevamo che era la parte che non varia..spero..
    $seconda_parte = array('(Windows; U; Windows NT 6.0; it-IT)''( Altra versione)''(Altra versione ancora'); // Eccetera, eccetera...gliele metterò tutte..
    $terza_parte = array(''); // E così via..

    // E poi il controllo...e qui mi devo vedere n'attimo quale funzione usare perchè non le ricordo tutte!

    if ($se_lo_user_agent_che_mi_dai____contiene_parti_presenti_nell_array) {

      echo (
    " Ari bekkate sta modifica come dico io! ");

    } else {

      echo (
    " Allora sei de coccio! E quindi al diavolo come visualizzi l'elemento.. -.- ");

    }

    ?>


    Voi che ne dite? Meglio la soluzione dell'array (che tra l'altro non so se si può effettivamente fare..) oppure quella dei pezzi di stringa?

  9. #9
    Eh lo sò..purtroppo il fatto è che ancora non ho un livello di conoscenza e dimestichezza tale da permettermi di maneggiare una classe ..sono un neofita del php.


    Che ne pensi della pensata sugli array Nick?

  10. #10
    la soluzione che ho postato non vi piace?
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.