Giorgiotave.it

Condividiamo idee e conoscenza dal 2003...
...dopo 17 anni una Nuova Storia sta per nascere
Scopri di più
+ Rispondi alla Discussione
Risultati da 1 a 2 di 2

un chiarimento finale su UTF-8 :: confusione o verità

Ultimo Messaggio di Holin il:
  1. #1
    User Newbie
    Data Registrazione
    Feb 2008
    Messaggi
    4

    un chiarimento finale su UTF-8 :: confusione o verità

    Ciao a tutti...
    finalmente dopo aver letto e riletto i post qui sul forum (che mi sono stati utilissimi!!!) ho sistemato il mio db:

    1) Mysql in utf8
    2) tabelle in utf8
    3) pagine con header UTF-8

    Funziona tutto alla grande... sia i dati inseriti nel DB da client php e poi prelevati e visualizzati sulla pagina tutto corretto accentate comprese, sia per il testo scritto sulla pagina html senza entities, ma ho la paura che magari qualche carattere in qualche browser non si legga correttamente.. può accadere davvero?

    In base a ciò che ho letto qui sul FORUM alla fine mi sono confuso un pò:
    c'e' sempre qualcuno che dice di no, e qualcuno invece di usare le entities anche se la pagina è UTF per codificare le accentate e caratteri speciali come

    Codice PHP:
     ° € è à é ì ò ù 
    E' davvero necessario o se tutto è davvero conforme UTF va sicuro e tranq?
    Del resto se scrivo nel DB in UTF non posso codificare le accentate con htmlentities() altrimenti mi sballa tutto quando prelevo da DB e la pagina UTF cerca di visualizzare il contenuto sbagliando! Giusto?

    Dovrei forse creare una funzione che mi recuperi i dati dal DB e con un replace e cambiare almeno le accentate in visualizzazione.... ma è davvero necessario?

    E poi... se per questione di sicurezza codifico i caratteri speciali pericolosi come apici, virgolette, ecc.. con
    Codice PHP:
    $var htmlspecialchars($var ENT_QUOTES); 
    è utile o superfluo aggiungere scrivendo i dati nel DB
    Codice PHP:
    mysql_real_escape_string 
    visto che appunto apici e virglolette risultano convertiti ... come da esempio:

    Codice:
    se scrivo nel DB attraverso un client php appositamente creato: WEEK-END D'INVERNO ....... diventerà > WEEK-END D\'INVERNO
    quindi .. forse è superfluo aggiungere anche il \ ...


    Aggiungo infine che, facendo un giro sul web, per esempio sul sito ADOBE...
    Tutto in UTF8 ma usano le entities per le accentate ... come mai se in teoria tutto è settato bene?

    IDEM per il sito APPLE ... UTF8 ma con le accentate convertite in entities...

    Da qui i dubbi su questa cosa...
    Quindi, anche se ho tutto corretto, e in visualizzazione non vedo errori, dovrei davvero convertire i dati in lettura con le entities html corrispondenti?

    Meglio metterle su DB o convertirle solo in lettura e lasciare su DB UTF8 puro?

    Dubbi su dubbi!

    Grz a tutti.. e a chi partecipa al post!

  2. #2
    User
    Data Registrazione
    Jan 2008
    Messaggi
    25
    Se hai fatto in modo che il testo sia veramente TUTTO codificato in UTF8, non hai problemi con nessun browser.

    Per quanto riguarda la funzione
    Codice PHP:
    mysql_real_escape_string 
    SERVE SEMPRE quando si fa un'inserzione in un campo formato stringa (varchar, text ecc) nel database, in quanto questa ti protegge da possibili SQL Injection.


+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.