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

Discussione: caratteri accentati

  1. #1
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026

    caratteri accentati

    ciao ho un problemino,inserisco i dati da una form in db in questo modo:
    Codice PHP:
    $var=htmlentites($_POST['dato']);
    $var_escape=mysql_real_escape_string($var); 
    poi li visualizzo cosi:

    Codice PHP:
    $risultato=mysql_fetch_array($query);

    echo
    ''.$risultato['dato_db']; 
    il problema sono i caratteri accentati,non riesco a visualizzarli bene mi esce una A strana al posto di è per esempio

    uso anche questo
    codice:
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    mi chiedo è un'errore di filtraggio in entrata db dei dati o in uscita ,o ancora meglio è il charset che sballa?

    grazie a chi mi può aiutare

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    144
    Anche a me lo faceva. Ho fatto a meno di quella funzione proprio per quello! Infatti se la togli il programma funziona alla grande

  3. #3
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026
    ciao scusa ti riferisci al htmlentities(); ??
    ma è giusto filtrare $_POST[] esclusivamente con mysql_real_string_escape(); prima di inserire i dati in db?

    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    144
    Si mi riferivo a htmlspecialchars! Se ne può fare a meno, l'importante è mysql_real_escape_string

  5. #5
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026
    ok perfetto se ne nessuno ribadisce prendo per buono

    grazie!!! provo e ti dico se ho risolto

  6. #6
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026
    miseriaccia le ho provate tutte non funziona,ma com'è possibile io in tutte le pagine ho
    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    ho settato la collation di tutti i campi del db in (utf8_general_ci),dato che comunque sto lavorando su joomla e tutti i campi delle tabelle joomla hanno questa collation

    il db è settato su

    Set di caratteri MySQL: UTF-8 Unicode (utf8)
    collazione della connessione di MySQL utf8_unicode_ci


    ho provato anche sia mysql_real_escape_string() sia mysql_escape_string() prima di inserire i dati nel db

    poi ho provato mettendo come unico filtro dei dati prima di inserirli ,sia htmlentities() sia addslashes().....niente continua ad inserirmi nel db e quindi a visualizzarmi stringhe con caratteri strani al posto di quelli accentati

    non so più dove andare a parare :

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    144
    Fai questo tentativo: dopo la query select, prima di utilizzare i dati passali a htmlentities.

  8. #8
    Prova anche utf8_encode() e utf8_decode().

  9. #9
    Prova ad usare, al posto di htmlentities, htmlspecialchars

  10. #10
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026
    risolto con utf8_decode() e il problema dopo i caratteri accentati risultavano gli slashes quando inserivo caratteri apostrofati es:l'avevo detto veniva visualizzato come l\'avevo detto

    ti spiego com'è ho risolto

    allora con la query insert inserisco i dati filtrati semplicemente con mysql_real_escape_string()

    al momento della query select visualizzo i dati filtrati prima con utf8_decode() e poi con stripslashes()

    ora mi chiedo la prassi dal punto di vista della sicurezza è valida?giusta?

    grazie mille del supporto mi hai dato una grande mano!!

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.