Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    PHP e MySQL - Dilemma sulle lettere accentate

    Salve a tutti.
    Ho risolto questo problema creandomi una apposita funzioncina:

    Codice PHP:
    function convertLetters ($string)
    {
        
    $string str_replace ('à''à'$string);
        
    $string str_replace ('è''è'$string);
        
    $string str_replace ('ì''ì'$string);
        
    $string str_replace ('ò''ò'$string);
        
    $string str_replace ('ù''ù'$string);
        
        return 
    $string;

    Nel database le lettere accentate vengono salvate così: à è ecc... ed è tutto ok.
    Però ho notato che questo non mi funziona sempre! Sto lavorando a delle pagine simili, ma con questa funzione non riesco a risolvere più come prima...
    Dov'è il problema?? Sto sbattendo di brutto la testa perchè in delle pagine funziona e in altre no, mi chiedo quindi se c'è un'alternativa...

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    utilizza
    quando inserisci
    htmlentities("$link", ENT_QUOTES);


    html_entity_decode(datiletturadb) quando stampi il risultato della query di lettura

  3. #3
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    Originariamente inviato da gasparroa
    utilizza
    quando inserisci
    htmlentities("$link", ENT_QUOTES);


    html_entity_decode(datiletturadb) quando stampi il risultato della query di lettura
    ENT_QUOTES non va usato anche con html_entity_decode ? cioè così
    html_entity_decode($datiestratti, ENT_QUOTES)

  4. #4
    Grazie mille funziona

  5. #5
    Anzi no, o meglio, in alcuni punti funziona e in altri no.
    Vorrei anche sapere come fare a riconoscere il simbolo ° e altri... sto impazzendo

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    209
    Questo per l'inserimento nel db

    $var=$_POST['var'];

    $var= addslashes($var);// Toglie slash
    $var= htmlentities("$var", ENT_QUOTES);// codifica i caratteri speciali del html


    $ins="INSERT into nome_tabella(nome_campo_tabella) VALUES ('$var')";
    mysql_db_query("$database",$ins)or die("Inserimento no".mysql_error());

    Questo per la lettura

    //query di lettuta
    sqlp = "select * from nome_tabella";
    $resp = mysql_query($sqlp) or die("Impossibile caricare: ".mysql_error());
    while ($rowp= mysql_fetch_array($resp))
    {
    <?php echo stripslashes(html_entity_decode($rowp[1])); ?>
    }

    per l'inserimento dell'oggetto ° dovrebbe funzionare già così

  7. #7
    Ho pubblicato diverse volte una mia funzione che fa al caso tuo.
    http://forum.html.it/forum/showthrea...readid=1306028
    Se scendi fino al 10° post (se non ho contato male) trovi una funzione che fa al caso tuo (filtraTesto()).

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Per gasparroa: il tuo metodo non mi viene applicato sempre

    Per alcio74: se uso la tua funzione su una semplice pagina, senza salvare su db, i dati vengono correttamente convertiti. Ma se tento di salvare su database, i dati SPARISCONO.

    Ma possibile che sia così difficile gestire i simboli?? Sto davvero impazzendo...
    Ma che charset deve avere MySQL? Ho impostato tutto a utf8_general_ci, e le pagine sono HTML 4.01 con charset UTF8. Non so cosa fare...

  9. #9
    Raga ho provato a modificare la codifica della pagina da

    <meta http-equiv = "content-type" content = "text/html;charset=UTF-8">

    a

    <meta http-equiv = "content-type" content = "text/html;charset=windows-1252">

    E sembra che tutto funzioni alla perfezione, salvo tutti i caratteri senza fare trasformazioni e riesco a leggerli bene tutti!

    Dannato UTF-8 di merda, ho perso un'intera giornata per colpa sua .__.

  10. #10
    Originariamente inviato da Dreamer89
    Per alcio74: se uso la tua funzione su una semplice pagina, senza salvare su db, i dati vengono correttamente convertiti. Ma se tento di salvare su database, i dati SPARISCONO.
    Beh... mi sa che devi far esorcizzare il PC perché qui da me funziona in maniera fantastica proprio per gli inserimenti nel DB, ed i testi scritti da chiunque vengono anche validati con la DTD per xHTML strict!

    Per quanto riguarda il tuo ultimo post, pensavo fosse sottointeso che avresti dovuto utilizzare un charset coerente.
    A sto punto ti consiglio il seguente:
    codice:
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.