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

Discussione: Codifica Caratteri

  1. #1

    Codifica Caratteri

    Ciao Ragazzi, succede che ho un sito con codifica iso-8859-1
    e ho un form di contatti he filtra i campi con HTMLSPECIALCHARS per evitare hack...

    Succede che, se un cliente, magari GRECO, compila il form con i suoi cararatteri, esso genera un errore,

    perchè?. come risolvo?

    grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Usa ovunque la codifica UTF8: pagine del sito, connessione al database, collation database e tabelle.

  3. #3
    Originariamente inviato da Alhazred
    Usa ovunque la codifica UTF8: pagine del sito, connessione al database, collation database e tabelle.
    perchè? risolve il mio problema?

  4. #4
    Originariamente inviato da BOES
    perchè? risolve il mio problema?
    i caratteri "GRECI" si convertonu tutti in questo modo
    codice:
     & #955;.......

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Per la sicurezza del sito non serve usare htmlspecialchars(), passa le stringhe a mysql_real_escape_string() è sufficiente questa per il problema di sicurezza che hai in mente tu e non ti stravolge i caratteri.

  6. #6
    Originariamente inviato da Alhazred
    Per la sicurezza del sito non serve usare htmlspecialchars(), passa le stringhe a mysql_real_escape_string() è sufficiente questa per il problema di sicurezza che hai in mente tu e non ti stravolge i caratteri.

    e si ho tolto HTMLSPECIALCHARS visto che modificava i caratteri in modo sbagliato,, andando a modificare "&" nel suo formato html

    ma giusto per curiosita, come si risolverebbe questo problema? dovrei cambiare la codifica della pagina??

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da BOES
    e si ho tolto HTMLSPECIALCHARS visto che modificava i caratteri in modo sbagliato,, andando a modificare "&" nel suo formato html
    In realtà non è che sbaglia a modificare i caratteri, htmlspecialchars() è proprio questo che fa, converte i caratteri speciali nella corrispondente entità HTML, quindi & ti sarà diventato & amp; giusto?
    ma giusto per curiosita, come si risolverebbe questo problema? dovrei cambiare la codifica della pagina??
    Per avere coerenza tra le pagine e il contenuto del db devi fare questo:
    - specificare in ogni pagina la codifica utf8
    - subito dopo il codice che stabilisce la connessione al db devi impostare il charset con cui php dialogherà con il db, tramite la funzione set_charset()
    - specificare il collation del db come utf8
    - specificare il charset delle singole tabelle come utf8

  8. #8
    Originariamente inviato da Alhazred
    In realtà non è che sbaglia a modificare i caratteri, htmlspecialchars() è proprio questo che fa, converte i caratteri speciali nella corrispondente entità HTML, quindi & ti sarà diventato & giusto?

    Per avere coerenza tra le pagine e il contenuto del db devi fare questo:
    - specificare in ogni pagina la codifica utf8
    - subito dopo il codice che stabilisce la connessione al db devi impostare il charset con cui php dialogherà con il db, tramite la funzione set_charset()
    - specificare il collation del db come utf8
    - specificare il charset delle singole tabelle come utf8
    si ma modificando la codifica della pagina in UTF8 , htmlspecialchars lavorera come desidero io?

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    No, htmlspecialchars() sempre la stessa cosa fa.
    Ma avere un charset coerente ovunque ti evita possibili problemi di visualizzazione dei caratteri sulle pagine.
    Inoltre se prevedi stringhe in diverse lingue, uft8 ti garantisce il supporto a più ampio spettro ai caratteri rispetto a iso-8859-1 che ad esempio avrebbe problemi con i caratteri cirillici... e mi sa anche con quelli greci.

  10. #10
    Originariamente inviato da Alhazred
    No, htmlspecialchars() sempre la stessa cosa fa.
    Ma avere un charset coerente ovunque ti evita possibili problemi di visualizzazione dei caratteri sulle pagine.
    Inoltre se prevedi stringhe in diverse lingue, uft8 ti garantisce il supporto a più ampio spettro ai caratteri rispetto a iso-8859-1 che ad esempio avrebbe problemi con i caratteri cirillici... e mi sa anche con quelli greci.
    no no i greci li supporta

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.