+ Rispondi alla Discussione
Risultati da 1 a 8 di 8

Errore con htmlentities

Ultimo Messaggio di Sups il:
  1. #1
    User L'avatar di liamuscogiuri
    Data Registrazione
    Jul 2007
    Località
    Roma
    Messaggi
    127

    Errore con htmlentities

    Salve a tutti!

    Ho fatto un form per la registrazione e ora dovrei convertire i dati immessi dall'utente con l'htmlentities().
    Ho, però, due problemi: il primo è che quando stampo a video $_POST['nome'], nel caso in cui ci sia l'apicetto ' lui automaticamente aggiunge prima il carattere di escape \ senza che io l'abbia deciso da qualche parte. Si può modificare questa cosa?
    Il secondo problema è, invece, che non mi funziona l'htmlentities: praticamente non mi riconosce correttamente i caratteri immessi. Se, per esempio, inserisco 'à' lui me lo traduce con 'à' che è invece 'à ' e non so perché.
    Qualcuno sa cosa devo fare?
    Grazie mille!

  2. #2
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Per rimuovere il backslash puoi usare questa funzione:

    Codice PHP:
    function unhtmlentities($string)
    {
        
    $string preg_replace('~&#x([0-9a-f]+);~ei''chr(hexdec("\\1"))'$string);
        
    $string preg_replace('~&#([0-9]+);~e''chr("\\1")'$string);
        
    $trans_tbl get_html_translation_table(HTML_ENTITIES);
        
    $trans_tbl array_flip($trans_tbl);
        return 
    strtr($string$trans_tbl);

    Il problema di conversione dei caratteri forse è dovuto ad un'errata codifica dei dati nella pagina di invio, prova ad utilizzare UTF-8.

    Codice HTML:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    Ciao!
    Now is the time for all good men to come to the aid of their country!

  3. #3
    User L'avatar di liamuscogiuri
    Data Registrazione
    Jul 2007
    Località
    Roma
    Messaggi
    127
    C'è già la codifica UTF-8 ma converte tutti i caratteri in modo strano, non corrispondenti a quelli reali...

  4. #4
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Prova in questo modo:

    htmlentities($stringa, ENT_COMPAT, "UTF-8");
    Now is the time for all good men to come to the aid of their country!

  5. #5
    User L'avatar di liamuscogiuri
    Data Registrazione
    Jul 2007
    Località
    Roma
    Messaggi
    127
    perfetto! ora funziona!
    però quando faccio l'html_entity_decode mi mostra i quadratini al posto delle lettere accentate...

  6. #6
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Imposta anche html_entity_decode con la codifica UTF-8.

    html_entity_decode($stringa, ENT_COMPAT, "UTF-8");
    Now is the time for all good men to come to the aid of their country!

  7. #7
    User L'avatar di liamuscogiuri
    Data Registrazione
    Jul 2007
    Località
    Roma
    Messaggi
    127
    Wow, funziona!!!
    Grazie infinite!!!

  8. #8
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Prego!
    Now is the time for all good men to come to the aid of their country!

+ 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.